当前位置:网站首页>La voie de l'évolution du système intelligent d'inspection et d'ordonnancement des petites procédures de Baidu

La voie de l'évolution du système intelligent d'inspection et d'ordonnancement des petites procédures de Baidu

2022-07-05 09:41:00 Baidu geek a dit

Photos

Guide de lecture:Baidu intelligent applet repose sur BaiduAPPPour le trafic global représenté par,Connexion précise à l'utilisateur.Aujourd'hui,Baidu intelligent applet Online volume nearly million,Contient plus de 10 milliards de ressources de contenu;Sous une énorme Page,Comment être plus efficace、.Découvrez rapidement les pages problématiques,Pour assurer la sécurité du contenu en ligne et l'expérience utilisateur,Ce ne sera pas un petit défi.Le contenu de cet article tourne autour d'un mécanisme de patrouille de sécurité pour le contenu en ligne de l'applet,Le processus d'évolution du Programme d'inspection des patrouilles de l'applet.

Texte intégral6178Mots,Temps de lecture estimé16Minutes.

Un.、Profil de l'entreprise

1.1 Introduction à l'inspection des patrouilles

Baidu Smart applet s'appuie sur l'écologie et la scène de Baidu,Via BaiduAPP“Recherche+Recommandations”La façon de fournir aux développeurs un accès facile au trafic,Réduire considérablement les coûts d'acquisition des développeurs.Au fur et à mesure que les développeurs d'applets s'installent,.La qualité du contenu des applets en ligne est inégale,Contenu de faible qualité(Pornographie、Vulgaire, etc.)Si elle est affichée en ligne,A un impact considérable sur l'expérience utilisateur;Et certaines violations graves(Sensibilité politique、Jeux de hasard, etc.)Il y a même de sérieux risques juridiques,En même temps, il menace la sécurité écologique des petits programmes.Donc,,Pour les applets en ligne,Nécessité de renforcer les capacités d'évaluation de la qualité、Mécanisme d'inspection des patrouilles et d'intervention en ligne,Par le contenu de l'applet7*24Heures de patrouille en ligne, Pour les applets qui ne répondent pas aux critères , Effectuer en temps opportun une rectification limitée dans le temps ou un retrait forcé, etc. , Pour assurer la qualité écologique et l'expérience utilisateur en ligne de l'applet .

1.2 Objectifs et principaux facteurs limitatifs de la stratégie d'ordonnancement des patrouilles

À l'heure actuelle, le nombre de pages visitées par les applets intelligents Baidu a atteint des centaines de millions. , La quantité totale de ressources de page en ligne de l'applet est de plus de 10 milliards .Idéalement, Pour contrôler les risques , Devrait être mis en œuvre sur toutes les pages “Inspection complète”, Rappel rapide et précis des risques en ligne .

Mais dans la pratique , Les facteurs ou contraintes suivants doivent être pris en considération: :

  • Différentes applets (Ou le corps) L'indice de sécurité du contenu est différent sous .Par exemple:, La publication de petits programmes spéciaux, comme les affaires gouvernementales, doit elle - même faire l'objet d'un examen plus approfondi. , Il est peu probable qu'une violation se produise ;Au contraire., L'indice de risque de violation des applets dans certaines autres catégories spéciales est plus élevé. . Alors que certaines applets sous certains sujets ont plus de violations dans l'histoire , D'autres applets sous le sujet sont également plus susceptibles de tricher ,Attendez un peu!, Cela conduit à différentes applets (Ou le corps) Les pages suivantes doivent être traitées différemment ;

  • Limite de quota pour les applets saisis . Chaque capture d'une page applet , En fin de compte, tout est égal à l'accès à cette page , La pression qui va passer au serveur applet , La stabilité du Service de développement ne doit pas être affectée par la patrouille elle - même. . Dans une plateforme de développement d'applets , Les développeurs peuvent exprimer les quotas que leur applet permet de saisir ; Pour les applets qui n'affichent pas de quotas d'expression , Nous allons également suivre le flux des applets (PV、UVAttendez.) Fixer un seuil de capture raisonnable ;

  • Ressources limitées. Évaluation de la sécurité du contenu de la page , Tout d'abord, comptez sur la page pour spiderAttrape、Rendre、 Analyser le contenu du texte et de l'image qu'il contient 、 Détection de sécurité pour le texte et les images ; Et saisir 、Rendre、 Le processus d'inspection, etc., exige beaucoup de ressources de la machine. ;

  • D'autres facteurs et contraintes pertinents comprennent: : Indice de risque correspondant au flux de page ( La surface d'influence des pages à haut débit est différente de celle des pages à un seul clic en cas de risque. )、 Distinction entre différentes entrées de débit, etc. .

Donc,, Nous devons tenir compte de tout ce qui précède. , Concevoir une stratégie de planification des patrouilles , Et selon la ligne droite caseÉvaluation, Optimiser continuellement les stratégies d'ajustement ,Optimiser l'utilisation des ressources,Pour être plus efficace、 Identifier plus précisément les problèmes de risque potentiels en ligne , Réduire la durée d'exposition en ligne , Enfin, assurer la santé écologique des applets intelligents .

2.、 Le processus d'évolution du système d'ordonnancement des patrouilles

2.1 V1.0 Version du Programme d'inspection des patrouilles

2.1.1 Architecture de haut niveau

Inspection des patrouillesV1.0 La conception de la couche supérieure de , Éléments clés inclus (Ou processus)Comme suit:

Source des données: Les utilisateurs en ligne utilisent l'applet intelligent Baidu ,Finsdk Les registres des points d'enfouissement pertinents seront recueillis en permanence. ( Inclure le Journal d'accès applet 、Journal de performance、 Journal des exceptions, etc. ), Puis il est signalé au Bureau central du Journal de Baidu , Stockage parallèle . Ces données de log seront une source de données importante pour la politique de découverte des pages de patrouille. .(Remarques: Basé sur les règles de sécurité de Baidu , Nous ne recueillons pas ou n'obtenons pas ou ne stockons pas d'informations confidentielles sur la vie privée de l'utilisateur telles que le numéro de téléphone cellulaire sécurisé par l'intermédiaire de l'état de connexion, etc. )

Politique de découverte de page : Applet clique tous les jours (Ou accès à) Des centaines de millions de pages , Limité par la prise 、Rendre、 Limites des ressources pour la détection et d'autres liens , Comment extraire efficacement les pages de risque potentiel de ces pages , C'est la cible de la stratégie de patrouille .

Plate - forme d'inspection des patrouilles : La plate - forme elle - même contient la génération de tâches de patrouille 、 Capture de page 、 Divers tests de capacité ( Classe de contrôle des risques correspondante /Expérience、 Ligne rouge / Problèmes de faible qualité tels que les lignes non rouges ) Attendre plusieurs modules de sous - service , Passage multiple entre modules KafkaInteraction asynchrone.

Audit de faible qualité et signalisation : Comme une partie de la capacité d'examen des machines est axée sur les rappels élevés , La réunion des opérateurs examinera manuellement le contenu des risques liés au rappel des machines. , Les signaux de faible qualité confirmés manuellement sont envoyés en aval .

Interventions de faible qualité en ligne (La pression.): Pour tous les types de risques de faible qualité , Combiner les caractéristiques de flux des applets 、 Niveau de risque du problème, etc. , Nous avons un ensemble parfait de 、 Processus d'intervention en ligne raffiné , L'applet est masqué d'une seule page 、 Fermeture du flux vers l'applet hors ligne 、 Même le sujet tire le noir et d'autres mesures punitives à différents degrés .

Photos

2.1.2 Mise en oeuvre de la politique d'ordonnancement des patrouilles

V1.0 La stratégie d'inspection des patrouilles de l'édition est centralisée en mode hors ligne , Combiner la distribution du trafic des applets 、 Caractéristiques de la catégorie industrielle 、 Cycle de publication en ligne 、 Historique des violations et autres caractéristiques , Nous avons résumé une variété de stratégies différentes en ligne , Programmer les différents cycles de l'heure à la semaine .

Pour équilibrer les besoins opérationnels et les besoins en ressources , Les facteurs suivants sont également pris en considération dans le plan de répartition des patrouilles: :

  • Pages à l'intérieur et entre les mêmes politiques URLLe poids exact

  • Identification et suppression des mêmes pages provenant de différentes sources de canaux

Les pages de l'applet sont distribuées par différents canaux ,Par exemple:Feed、Recherche、 Transmission dynamique, etc. , Même page sous différents canaux de distribution URL Ça fera une différence. , Et le contenu de la page elle - même est le même , Nous avons donc mis au point des stratégies spéciales pour identifier les mêmes pages dans différents canaux de trafic. . Page ci - dessus , L'objectif est d'améliorer l'utilisation efficace des ressources .

2.1.3 Défis opérationnels

Et pourtant, Avec la croissance rapide du nombre de développeurs et d'applets d'applets intelligents basés à Baidu , Les applets sont passés de milliards à des milliards de pages ; Entre - temps, l'introduction de services , Les exigences en matière de rapidité du contrôle des risques sont passées de jours à heures. . L'architecture actuelle ne peut plus répondre aux exigences opérationnelles de la croissance des entreprises en matière de contrôle des risques en ligne. .

2.2 V2.0 Version du Programme d'inspection des patrouilles

2.2.1 Objectifs de conception(Optimiser l'orientation)

V1.0 Les données de détection de l'architecture sont principalement des données hors ligne ,AvecT+1Délai pour, Les problèmes de contrôle des risques exposés la veille ne seront décelés que le lendemain. , Afin de détecter plus rapidement les problèmes de contrôle des risques en ligne exposés , Réduire le temps d'exposition aux problèmes en ligne ,V2.0 L'objectif ultime de la conception de l'architecture est de découvrir l'exposition à la page de risque en ligne. .Pour atteindre cet objectif, Les pages d'inspection sont principalement des données de flux en temps réel , Données hors ligne en complément ;En plus, La détection de la page applet nécessite la capture du contenu de la page , Peut exercer une pression sur le serveur applet , Par conséquent, l'uniformité de l'envoi d'une seule page d'applet et la limitation de la limite d'un jour doivent être assurées. . Les critères de conception spécifiques sont les suivants: :

  • Principes: Priorité en temps réel 、 Supplément hors ligne

  • Ligne rouge: Ne pas dépasser la limite de retrait de l'applet 、 Saisir uniformément , Impossible de saisir la même applet centralement

  • Exigences du produit: Assurer une couverture élevée pour la détection des pages

  • Restrictions: Limite de ressources de capture de page

2.2.2 Architecture de haut niveau

Après l'évolutionV2.0 La conception de l'architecture de haut niveau de la stratégie d'inspection des patrouilles est la suivante: :

Photos

ComparaisonV1.0,V2.0 Introduction de flux de données en temps réel , Et a fait un quota de capture pour les applets 5 Contrôle plus fin au niveau de la fenêtre par minute .

2.2.3 V2.0 Mise en œuvre du démontage de la stratégie de programmation des patrouilles

La mise en œuvre globale de la patrouille en temps réel est illustrée dans la figure ci - dessous. , Peut être divisé en trois parties : Politique de découverte de pages en direct 、 Politique de découverte de pages hors ligne et politique de programmation de pages . La politique de découverte de pages en temps réel est comparée à la patrouille V1.0 Nouvelle politique pour l'architecture , Recevoir directement les données du Journal de flux en temps réel , Filtrer les pages que les utilisateurs cliquent selon certaines politiques , Capable de détecter les problèmes de contrôle du vent au niveau des minutes ; Politique de découverte et inspection des pages hors ligne V1.0Architecture similaire,AdoptionT-1Données du journal pour, Comme base de données en temps réel , Toutes les données en temps réel ne sont pas utilisées en raison de l'utilisation d'applets qps Il y a des pics et des vallées , Utilisation de la vallée des vagues dans les applets , Moins de pages trouvées , La capacité de capture et de détection des pages n'est pas pleinement utilisée , Les données hors ligne sont nécessaires pour compléter ; Les politiques d'ordonnancement des pages regroupent les politiques en temps réel et hors ligne , Les données hors ligne sont complétées par des données en temps réel , Fonction de suppression de duplication en temps réel , Envoyer la page à saisir et à tester .

Photos

2.2.3.1 Politique de découverte de pages hors ligne

Politique de découverte de pages hors ligne , Est un journal qui utilise les utilisateurs de la veille pour parcourir la page applet , Statistiques des pages PV, Et filtré à travers le bassin d'erreur 、 Saisir les politiques telles que les limites des quotas , La page à inspecter est reliée à la page PVDépôtDorisMoyenne, Pour l'expédition des patrouilles .

Le flux de données est illustré ci - dessous , Les données passent à tour de rôle ODSCouche(Hive Journal original de l'applet de stockage de table )、DWDCouche(Hive Table Store user callup log )、DWACouche(Hive Table stocke chaque page PV)、DMCouche(Doris Le tableau stocke les informations de la page à tester ), Passage du calcul entre les couches de l'entrepôt de données SparkRéalisation.

Photos

2.2.3.2 Politique de découverte de pages en direct

La source de données de la politique de découverte de page en temps réel fournit un service de distribution en temps réel pour les applets , Le Service de distribution en temps réel des applets est la base de l'entrepôt de données en temps réel des applets , Les utilisateurs de données ajoutent des règles de partage de journaux au côté de la gestion du Service de distribution de données en temps réel , Vous pouvez diviser les données admissibles en files d'attente de messages spécifiées (BaiduBigPipe)Moyenne,UtilisationSpark、Flink Ou le programme reçoit un message pour calculer . L'architecture globale du Service de données en temps réel est présentée dans la figure ci - dessous. , Un délai de seconde pôle est actuellement atteint .

Photos

Configurer les règles de partage des journaux pour filtrer les utilisateurs qui appellent une applet dans le Service de distribution de données en temps réel de l'applet ,UtilisationStructured Streaming Recevoir la file d'attente de message correspondante Topic, Extraire d'abord les informations clés du Journal ,Y compris::AppletID、Pageurl、 Heure de l'événement, etc. . Les applets cliquent sur des centaines de millions de pages par jour , Il n'est pas réaliste de vérifier que toutes les pages sont couvertes , Donc nous avons filtré PV Détection prioritaire de la page supérieure ,Données en temps réelPV Un intervalle de temps est nécessaire pour le calcul de ,AvecStructured Streaming micro-batchCorrespondant à, L'intervalle de temps est 5min,Structured Streaming De windowSize Set to5Minutes, L'étape de glissement est également réglée à 5Minutes, Pas de chevauchement entre les fenêtres ,Calcul5En minutes,Par pagePV. Pour les données retardées trop longtemps ,Besoin de passerwatermark(Filigrane)Pour l'abandonner, Le temps de filigrane est 15Minutes,C'est - à - dire:15 Les données d'il y a quelques minutes seront filtrées .La sortie des données adopteAppendMode, Une seule sortie par fenêtre ,Résultats finaux, Évitez d'envoyer des pages à l'intérieur d'une seule fenêtre pour inspection. . Les concepts spécifiques de fenêtre et de filigrane sont présentés dans la figure ci - dessous. ( Ce dessin est cité de Spark Structured StreamingSite officiel,https://spark.apache.org/docs/latest/structured-streaming-kafka-integration.html).

Photos

En raison de la saisie du contenu de la page QPSLimitée, Impossible de saisir toutes les pages pour inspection , Pour les fenêtres PV Toutes les grandes pages sont saisies ,Pour faiblePVPage, Parce qu'il y a trop de pages , Méthode d'échantillonnage ,Structured StreamingNon pris en chargeLimitDéclarations, Pour réaliser l'échantillonnage des données ,Voilà.PV = 1 Une page de 0-9999Nombre aléatoire derand,Filtrerrand < 100Page de,C'est - à - dire faiblePV Échantillonnage des pages 1%, Sera finalement élevé PV Faible page et échantillon PVPageunionSortie arrière, Garantie d'inspection qps Moins que la capture de page qpsRestrictions.

Les pages filtrées doivent également être limitées par une série de politiques de produits :

  • Certaines applets sont exemptées , Filtrer les pages de ces applets ;

  • Le pool d'erreurs est rappelé , Mais il n'y a pas de problème avec l'examen des personnes , La précision de détection peut être grandement améliorée en filtrant le réservoir d'erreurs ;

  • Un grand nombre de pages saisies peuvent exercer une pression sur le serveur de l'applet , Limite de quota de capture par applet .

Utilisé lors du filtrage de page left joinFonctionnement, Associer un flux en temps réel à une table de dimensions hors ligne , Les données dimensionnelles hors ligne sont également constamment mises à jour , Il est nécessaire de s'assurer que le nom des données de dimension reste le même , Le contenu des données est constamment mis à jour , S'assurer que le flux en temps réel peut obtenir les données dimensionnelles les plus récentes dans chaque fenêtre .

Production finale de données vers ElasticsearchMoyenne, Si toutes les données sont écrites sous le même index , Les ajouts, les suppressions et les modifications sont tous sous le même index , La quantité de données sous index augmente , Réduction de l'efficacité des requêtes et des Inserts , Et supprimer les données historiques n'est pas pratique ,delete_by_query Mauvais rendement en soi , Et non physiquement supprimé , Ne pas libérer de l'espace et améliorer les performances . L'alias de l'index et la segmentation par index temporel sont utilisés ici , L'avantage est que la suppression des données historiques peut être supprimée par index historique ,Facile à utiliser, Peut libérer efficacement de l'espace ,Amélioration des performances.ES La segmentation de l'index nécessite la création séquentielle d'alias d'index ,Créer un modèle d'index, Créer un index avec des dates , Développer et configurer rolloverLes règles, Tâches programmées pour créer et supprimer des index tangents .

PUT /%3Conline-realtime-risk-page-index-%7Bnow%2FH%7BYYYY.MM.dd%7C%2B08%3A00%7D%7D-1%3E/{    "aliases": {        "online-realtime-risk-page-index": { "is_write_index" : true }    }}POST /online-realtime-risk-page-index/_rollover{    "conditions": {        "max_age": "1d", // Index par jour         "max_docs": 10000000,        "max_size": "2gb"    }}

2.2.3.3 Politique de programmation des pages

Stratégies de découverte de pages hors ligne et en temps réel décrites dans les deux sections précédentes , L'ensemble de données de page hors ligne et l'ensemble de données de page en temps réel sont obtenus respectivement. . La stratégie finale d'ordonnancement des pages sera décrite en détail ci - dessous en fonction de ces deux ensembles à vérifier. .

1、Division des données,Calendrier périodique

Pour les ensembles de données hors ligne ,Utiliser【Lot】 Pour diviser plusieurs ensembles de données ; Pour les ensembles de données en temps réel ,Utiliser【Fenêtre】 Pour diviser plusieurs ensembles de données .Utiliser【Tâches programmées】 Pour traiter périodiquement ces ensembles de données divisés . Diviser la journée en bn Lots,Hypothèses【Tâches programmées】 Le nombre de minutes de la journée en cours est currentMinutes,Alors, Il faut s'en occuper maintenant. 【Données hors ligne】De【Lot】 batch = currentMinutes * bn / (24 * 60).Correspondant, Il faut s'en occuper maintenant. 【Données en temps réel】De【Début de la fenêtre】 windowStart = batch * (24 * 60) / bn. Mise en place d'un filigrane pour le traitement des données en temps réel et la période de programmation des tâches programmées ,currentMinutes Pas exactement à l'heure actuelle , Mais par l'heure actuelle -30 Dans quelques minutes. .

2、 Priorité en temps réel , Supplément hors ligne

Encore une fois, les limites des ressources du système 、 Pression sur une seule prise d'applet 、 Principes de conception tels que le Supplément entre les collections de pages hors ligne et en temps réel , Dans un seul cycle de programmation de page , Si la limite n'est pas atteinte , Toutes les pages en temps réel seront programmées pour la détection ; Si la page en direct n'atteint toujours pas la limite , Ensuite, les pages hors ligne seront utilisées pour compléter , Pour assurer le fonctionnement à pleine charge du système en tout temps , Utiliser pleinement, uniformément et efficacement les ressources .En même temps, Cette méthode d'ordonnancement peut également assurer la disponibilité mutuelle des politiques en temps réel et hors ligne. , Quand il y a un problème avec une seule politique , Le système peut encore trouver des pages et les envoyer pour inspection via une autre politique , Pas au ralenti. .En outre, Les pages de l'ensemble de données hors ligne sont basées sur PV Aller à l'envers , Plus de clics sur les pages hors ligne sont détectés plus prioritaires .

Photos

3、 Page dégraissée

Basé sur la page en ligne PVLoi de distribution, Afin d'améliorer l'inspection des patrouilles PVCouverture, La politique d'ordonnancement des pages ajoute également une hauteur pv Page lourde et moyenne ce jour - là PV Logique de suppression des duplicatas dans le cycle spécifié par la page . Sélection de la base de données de stockage Redis, Structure des données et Page url Le calcul et la conception des tranches correspondantes sont les suivants: :

Structure des données

Ensemble, Pour stocker les pages détectées dans la collection URLConvertir en16Bitsmd5, Une seule collection stocke trop de données pour une journée , Ainsi, les données d'une journée sont divisées en plusieurs tranches , Chaque tranche est un ensemble . Si vous placez un jour 100Pièce (s), Un jour, alors. 100Collections.

url Calcul des tranches correspondantes

1、Appleturl Lettre moyenne int Ajouter pour obtenir le nombre x

2、x mod Nombre de tranches obtenues key

Schéma de la structure des données:

Photos

2.2.4 Examen des avantages

La plateforme Smart applet Patrol évolue 、En cours d'optimisation, La capacité de la plateforme a été grandement améliorée :

  1. Des dizaines de millions de pages sont prises en charge pour les visites quotidiennes , La couverture de la page a considérablement augmenté ;

  2. Ajout d'un chemin de patrouille en temps réel basé sur des données en temps réel , Réduire considérablement la durée d'exposition en ligne des pages de questions , Problème trouvé en minutes , Organiser le routage de la chaîne d'intervention de jour en heure ;

  3. Stratégie d'ordonnancement des données en temps réel complétées par des données hors ligne , Tirer pleinement parti des ressources de capture de page et de détection de page , Utiliser moins de ressources , Détecter plus de pages ;

Enfin, un système d'assurance de la qualité des petites procédures a été mis en place , Aider à mieux identifier et traiter les problèmes en ligne , Contrôle des risques en ligne , Réduire la proportion de faible qualité en ligne , Protéger la santé écologique des petites procédures .

===

Trois、Réflexions et perspectives

Dans cet article, nous nous concentrons sur les objectifs opérationnels et le contexte de l'inspection des patrouilles. , Le processus d'évolution de la stratégie d'ordonnancement des patrouilles de petits programmes est introduit avec emphase. , Le travail d'inspection de la qualité en ligne doit être construit et perfectionné en permanence. .Au fur et à mesure que l'entreprise se développe, Les ressources en ligne seront plus riches , Plus de diversité dans le contenu , Les ressources de la page continueront d'augmenter , Nous devons faire face à de plus grands défis. . Comment être efficace à partir d'une grande quantité de ressources de page 、 Rappel précis des problèmes de risque en ligne , Toujours l'objectif de la stratégie d'ordonnancement des patrouilles . Nous allons continuer à explorer 、Optimisation, Soutenir fermement l'activité croissante des applets intelligents .

Lectures recommandées

Technologie informatique hétérogène à l'extrémité mobile -GPU OpenCL Programmation(Chapitre de base)

Test de développement de Cloud Native enabling

Basé surSaga Mise en place d'un calendrier de transaction distribué basé sur

Spark Conception et mise en œuvre du cadre de développement hors ligne

Pratique d'atterrissage du micro - cadre frontal d'Avon

Baidu Official Technology No. 「BaiduGeekDis - le.」En ligne.!

Produits techniques secs · Informations sur l'industrie · Salon en ligne · Congrès de l'industrie

Information sur le recrutement · Messages d'extrapolation · Livres techniques · Autour de Baidu

Bienvenue à tous les étudiants pour prêter attention à Baidu GeekDis - le.!

原网站

版权声明
本文为[Baidu geek a dit]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050927272471.html