Concepteur architecte système principal de tests logiciels (8) Développement basé sur le middleware et projets réels

Table des matières

Le but du middleware

technologie middleware 

Fonctionnalités du middleware

Dix avantages du middleware 

Intégration d'applications d'entreprise

architecture légère

Cadre entretoises

printemps

Hiberner

Exemples de projets réels

Vue d'ensemble de la logique du produit

Spécification d'interface pour gRPC

Interactions clés du middleware

conception de l'architecture globale

Traitement par le bas des matériaux Big Data

Vue d'ensemble de l'interaction commerciale

Vue d'ensemble du traitement des données de fond


Le but du middleware

technologie middleware 

appartient à la catégorie des logiciels réutilisables

Fonctionnalités du middleware

Dix avantages du middleware 

Intégration d'applications d'entreprise

 

architecture légère

Cadre entretoises

processus de travail:

printemps

Solution unique pour les applications d'entreprise

Hiberner

Laissez le développement se débarrasser du code JDBC gênant et concentrez-vous davantage sur l'écriture de la représentation des données et de la logique métier

 Construire un framework WEB léger avec struts, spring, hibernate :

Exemples de projets réels

Vue d'ensemble de la logique du produit

Services fonctionnels de base : En raison du grand nombre de modules fonctionnels impliqués, 150+interfaces http(s) fournissent des données à la page

Technologie middleware : la plate-forme globale s'appuie sur de nombreuses technologies middleware, notamment :

  • Messages de Kafka. Utiliser les messages kafka pour réaliser une interaction asynchrone avec des systèmes tiers, y compris la synchronisation des données de règlement financier avec les systèmes financiers et les données publicitaires avec les systèmes de plate-forme de base tiers via les messages kafka ;
  • données de la ruche. Dans le secteur du traitement des données volumineuses, il existe de nombreux scénarios de traitement des données volumineuses, tels que l'obtention de données à partir d'une table de ruche tierce, puis le traitement, le nettoyage, le traitement, etc., ou le transfert de données à partir de plusieurs sources de données telles que MySQL, cache , hive et interfaces tierces Les données extraites sont traitées de manière uniforme, puis écrites dans la table hive pour une utilisation ultérieure de la logique métier. Le traitement des données de la table Hive adopte généralement des méthodes de traitement des données hors ligne, telles que le traitement des tâches de synchronisation, qui est traité toutes les heures, toutes les 2 heures ou une fois par jour ; l'ampleur des données traitées est également variée, comme des dizaines ou des centaines de petits lots avec Traitement de fréquences multiples, ou traitement de données incrémental quotidien de dizaines de millions de niveaux, etc. Hive convient à l'analyse statistique de données par lots.
  • Tâches chronométrées. Comme leur nom l'indique, les tâches planifiées sont planifiées pour s'exécuter à différentes fréquences et sont généralement utilisées pour traiter les données hors ligne. Le système d'entreprise implique plus de 100 tâches de synchronisation, qui sont utilisées pour traiter des données provenant de différentes sources de données, de différentes ampleurs et de différents scénarios commerciaux.
  • Fichiers HDFS. Il est utilisé pour la lecture et l'écriture distribuées de données à grande échelle, en particulier dans le scénario de plus de lectures et moins d'écritures.
    Stockez des fichiers très volumineux sans exigences de latence. Les fichiers HDFS sont utilisés dans les systèmes d'entreprise pour écrire des données en grande quantité à lire par des systèmes tiers (tels que les moteurs de système d'entreprise en aval, etc.). Dans un scénario commercial, une grande quantité de données de création sera d'abord obtenue d'un tiers, puis le système filtrera, remplira et filtrera, puis appellera l'interface tierce pour examiner les données de création. Écrivez les données de création auditées qui répondent aux exigences de l'entreprise dans le fichier HDFS en une seule fois via une tâche planifiée. Les champs écrits incluent des informations telles que l'ID du matériau, l'ID du package de trafic et l'état de l'audit. 
  •  ClickHouse Ci-après dénommée table CH, une base de données de stockage en colonnes, une base de données orientée OLAP, ClickHouse prend en charge un langage de type SQL et offre la commodité des données relationnelles traditionnelles. En utilisation réelle, la table amont de la table CH est la table hive.En configurant la tâche IDP uniformément fournie par l'entreprise, les données de la table hive peuvent être automatiquement synchronisées avec la table CH en fonction des besoins métiers. Les données de la table CH deviennent la source de données du moteur de rapport en aval.
  • base de données. L'entreprise utilise une base de données MySQL maître-esclave et le middleware utilise mybatis. Étant donné que le métier implique l'ajout, la suppression, la modification et la requête de plusieurs tables, et la possibilité d'ajouter des colonnes et des champs à une certaine table, le code métier adopte un package unifié, qui non seulement prévient le risque d'injection SQL, mais facilite également l'élargissement du programme.
  • Cache Redis. Dans l'entreprise, le cluster de cache Redis est utilisé pour stocker les données commerciales de base pour l'entreprise en aval. Dans la mise en œuvre commerciale, premièrement, les données commerciales de la base de données MySQL, telles que les données d'application, les données d'espace publicitaire, les données d'espace de contenu, les données de règle de masquage, les données multimédia, etc., sont écrites dans le cache Redis via des tâches planifiées. En raison des millions de volumes de données d'entreprise et de la possibilité de modifications en temps réel des données d'entreprise, la tâche de minutage doit être exécutée pendant plus de 40 minutes pour synchroniser les données une fois, ce qui peut affecter la logique ultérieure. Afin d'accélérer la synchronisation du cache, une optimisation de la synchronisation globale du cache a été réalisée dans l'entreprise, ce qui a permis de réduire le temps d'exécution des tâches planifiées de plus de 40 minutes à moins de 20 minutes. Les méthodes spécifiques comprennent : l'utilisation du multi-threading asynchrone, le traitement parallèle des données d'application, les données d'espace publicitaire, les données de bit de contenu, les données de règle de masquage, les données multimédias, etc. ; la méthode d'écriture de redis est remplacée par la méthode d'écriture de pipeline de pipeline. 
  • Moteur de rapports. Le moteur de rapport est un ensemble de services sous-jacents fournis par le groupe d'architecture d'entreprise, qui peuvent être directement accessibles et appelés en tant que partie commerciale. Pour l'interface correspondant au moteur de rapport, les paramètres d'appel comprennent principalement la dimension des données requises, l'heure de fin, l'ordre croissant, l'ordre inverse, etc. 
  • grpc. appel de procédure à distance rpc, n'a pas besoin de comprendre le protocole de la technologie de réseau sous-jacente , une compréhension simple est qu'un nœud demande le service fourni par un autre nœud. RPC n'est qu'un ensemble de protocoles. Les frameworks implémentés sur la base de cet ensemble de spécifications de protocole peuvent être appelés frameworks RPC, et les plus typiques sont Dubbo, Thrift et gRPC. GRPC est un framework RPC open source hautes performances moderne.

Spécification d'interface pour gRPC

Lorsque nous souhaitons créer un service gRPC, la première étape consiste généralement à définir l'interface dans le fichier .proto. Utilisez ce fichier .proto pour générer du code client et serveur avec le compilateur de protocole. Le serveur et le client partagent le fichier .proto. La génération de code côté client, sans avoir à écrire de code côté client, peut économiser beaucoup de temps de développement dans les applications avec de nombreux services.

b. Décrivez clairement les paramètres d'entrée et de sortie de l'interface dans le fichier .proto, et générez une interface qui peut communiquer avec chaque langue basée sur ce fichier, afin de réaliser la communication entre différentes langues.

c. Le code généré par protoc garantira que les données envoyées par le client ou le serveur sont conformes à la spécification et cohérentes entre les plates-formes et les implémentations.

Les avantages de gRPC incluent : un mécanisme de codage binaire efficace, une spécification d'interface claire et la prise en charge des flux.

Dans les scénarios commerciaux réels, il existe deux aspects de l'utilisation de grpc :

1. En tant que serveur, créez un service grpc, définissez l'interface, les paramètres d'entrée et les paramètres de sortie via le fichier proto et réalisez la logique de l'interface grpc. Dans le même temps, l'interface, c'est-à-dire le fichier proto, est fournie aux appels tiers.

2. En tant que client, générez le code client via le fichier proto pour appeler l'interface grpc fournie par le service tiers afin d'obtenir des données.

Dans le système d'entreprise dont je suis responsable, il existe plusieurs interfaces grpc qui fournissent des données dans différents scénarios et dimensions.En même temps, il agira également en tant que client pour appeler l'interface grpc fournie par un tiers pour obtenir des données. 

  • kconf La plate-forme de configuration fournie par l'entreprise. Diverses configurations k/v peuvent être effectuées dessus, puis le package kconf peut être référencé dans le code du programme, et la configuration dans kconf peut être ajoutée, supprimée, modifiée et vérifiée. Différents formats de données sont pris en charge, tels que booléen, int, float/double, hashmap/hashset, liste liée, objets personnalisés, etc. Dans le développement commercial réel, il existe généralement plusieurs utilisations principales : 

1. Comme interrupteur. Par exemple, lorsque la valeur de configuration est TRUE, la logique nouvellement ajoutée prend effet ; lorsque la valeur de configuration est FALSE, la nouvelle logique est ignorée ;

2. Augmentez progressivement le commutateur de volume. Par exemple, si la valeur de configuration est de 20 %, alors 20 % du trafic/des utilisateurs verront la nouvelle fonction commerciale ; si la valeur de configuration est de 50 %, 50 % du trafic/des utilisateurs verront la nouvelle fonction commerciale ; observer pour une période de temps, la nouvelle fonction est normale, elle augmentera progressivement la valeur jusqu'à 100%, de sorte que toutes les nouvelles fonctions commerciales prendront effet et que la version du système sera terminée.

3. En tant que données constantes de configuration. Par exemple, certaines données commerciales relativement fixes seront utilisées dans l'entreprise, et ces données commerciales veulent être facilement modifiées (sans changer le code, effectuer une série d'opérations complexes telles que la publication et le lancement), et après la modification peut prendre effet en temps réel, il configurera ces données constantes métier dans kconf, puis les utilisera dans les codes métier.

Couche de stockage : de nombreux middlewares de stockage sont impliqués, tels que MySQL, une table de ruche, un cache, un stockage d'images/vidéos, etc. ; de nombreuses tables sont impliquées, il y a plus de 100 tables dans la base de données MySQL et plus de 50 tables de ruche impliquées ; Données les sources sont traitées simultanément.

La base de données MySQL globale adopte une structure maître-esclave, et la logique de base et la logique avec des exigences élevées en temps réel fonctionneront directement sur la base de données maître. 

La table de ruche est utilisée comme stockage de Big Data et, combinée à des tâches hors ligne pour traiter les Big Data, elle est utilisée comme stockage sous-jacent. Le niveau de l'entreprise fournira également des plates-formes et des interfaces publiques correspondant à Hive, ce qui peut faciliter la migration avec d'autres sources de données, telles que l'importation de données de table Hive dans des tables MySQL, des données de table MySQL dans des tables Hive, des données de table Hive dans des tables ClickHouse, etc. . Étant donné que différents métiers ont des exigences opérationnelles similaires, l'équipe d'architecture regroupera ces opérations de manière unifiée et fournira une plate-forme publique unifiée.Les métiers qui en ont besoin n'ont qu'à configurer l'IDP de tâche de données hors ligne sur celle-ci. 

Interactions clés du middleware

conception de l'architecture globale

Traitement par le bas des matériaux Big Data

Points clés et difficultés :

  • Filtrage des matériaux. Le nombre de matériaux dans le système commercial tiers en amont est très important (des millions de dizaines de millions par jour) et les matériaux sont des matériaux à grande échelle. Selon les besoins de l'entreprise, plusieurs conditions sont nécessaires pour filtrer et filtrer la quantité totale. de matériaux pour filtrer les matériaux qui répondent aux besoins de l'entreprise. Il existe diverses conditions de sélection et peuvent changer avec le développement de l'entreprise. Par conséquent, d'une part, le filtrage des entreprises doit répondre aux besoins des entreprises et, d'autre part, il doit également s'adapter à divers matériaux pour faciliter une expansion ultérieure. L'ensemble du traitement de la logique de filtrage des matériaux, afin d'éviter d'écrire plusieurs instructions if/else pour que la logique métier soit trop couplée, l'implémentation adopte le mode stratégie. Il existe de nombreuses conditions de filtrage réelles, et ici, pour la commodité de la description et de la discussion, elles sont simplifiées à 4 conditions de filtrage A, B, C et D. 

Caractéristiques du modèle de conception de stratégie :

1. Fournir une interface stratégique

2. Fournir des classes d'implémentation pour plusieurs interfaces de stratégie

3. Fournir un contexte politique

Avantages du modèle de conception de stratégie :

1. Les algorithmes peuvent être commutés librement (implémentation spécifique)

2. Éviter le jugement de conditions multiples (tuer sinon)

3. Bonne évolutivité De nouveaux algorithmes peuvent être définis et fournis aux utilisateurs (lors de l'ajout de nouvelles fonctions, il suffit d'ajouter du code sans modifier le code)

Par conséquent, les quatre conditions de filtre peuvent être réalisées en tant que classes d'implémentation des quatre interfaces de politique. Les exigences ultérieures changent, telles que l'ajout de 2 conditions de filtre, il suffit alors d'ajouter 2 classes d'implémentation de l'interface de stratégie, ce qui n'affectera pas l'implémentation d'origine, évitera de modifier la logique métier précédente et en ajoutera de nouvelles de manière pratique. 

  • Traitement des matériaux. Lors de l'obtention de documents originaux auprès d'un tiers, il y a souvent un manque d'informations nécessaires pour les affaires. Par exemple, les documents d'image doivent être encore coupés en taille, longueur et largeur, etc., et d'autres informations telles que le titre, le titre, l'image description, etc. doivent être ajoutés. Par conséquent, dans la logique de traitement du matériau, l'interface de recadrage tierce sera d'abord appelée pour rogner davantage l'image ; puis l'interface côté moteur sera appelée pour obtenir le titre, le titre, la description de l'image et d'autres informations pour remplir le matériau d'origine information. Après le remplissage, les matériaux traités sont écrits dans la bibliothèque de matériaux MySQL par lots pour une utilisation logique ultérieure. 

Étant donné qu'il existe de nombreux types de documents obtenus auprès de tiers, en plus des images et des vidéos, divers scénarios commerciaux doivent être couverts, et les documents des différents scénarios commerciaux doivent être complétés par des informations différentes. Par conséquent, il est nécessaire de se concentrer sur le traitement correct de divers matériaux dans la logique de traitement des matériaux.

  • Examen matériel. L'examen du matériel, comme son nom l'indique, consiste à soumettre les documents traités aux médias pour examen, et seuls les documents qui réussissent l'examen peuvent être finalement affichés sur le terminal. Dans le scénario commercial, il existe deux types de révision du matériel, l'un consiste à réviser sur la page et l'autre consiste à envoyer le matériel à un tiers pour révision. 

Dans la scène de révision de la page, le matériel traité est stocké dans la bibliothèque de matériaux MySQL. La logique d'examen obtiendra les documents à examiner et les affichera sur la page pour que le personnel des médias les examine. Une fois le matériel approuvé ou rejeté, le résultat de l'examen sera mis à jour dans la base de données de matériaux MySQL en temps réel.

Une autre méthode de révision de matériel consiste à envoyer le matériel à un tiers pour révision, c'est-à-dire à envoyer le matériel à réviser au tiers en appelant la méthode d'interface fournie par le tiers. Ensuite, une tâche planifiée sera mise en œuvre pour appeler l'interface d'état d'examen tiers hors ligne afin d'obtenir l'état d'examen final du matériel. De même, une fois le matériel approuvé ou rejeté, le résultat de l'examen sera mis à jour dans la bibliothèque de matériaux MySQL en temps réel.

  • Le matériel est écrit en hdfs. En raison de l'énorme quantité de données matérielles, et toutes doivent être synchronisées avec le moteur tiers, les tâches chronométrées sont utilisées ici pour réaliser l'écriture hors ligne. Autrement dit, la tâche planifiée est exécutée de temps en temps et tous les matériaux approuvés sont écrits dans le fichier hdfs.Les champs principaux écrits incluent l'ID du matériau, l'état de l'audit, le package de trafic auquel le matériau appartient, etc. 

Vue d'ensemble de l'interaction commerciale

Vue d'ensemble du traitement des données de fond

Je suppose que tu aimes

Origine blog.csdn.net/wodeyijia911/article/details/131390367
conseillé
Classement