De nombreuses mains font travailler la lumière – Architecture du connecteur de recherche de poignée de main
Dans notre premier article nous avons discuté de la nécessité de s'éloigner de l'approche de solution d'application autonome pour rechercher des connecteurs. Dans cet article, nous décrirons l'architecture Handshake à un niveau élevé. Nous avons choisi de évoluer vers une architecture de microservices pour plusieurs raisons :
- Moins de ressources
- Planification, réutilisation des composants et maintenance
- Paysage technologique plus récent et en pleine croissance
- Cloud et gestion locale sont presque interchangeables
- Plus facile à gérer pour les utilisateurs (point de contact unique et gestion pour de nombreux threads)
- Beaucoup plus de flexibilité pour le déploiement et les flux de travail dynamiques
- Meilleure gestion des protocoles REST et SOAP
Récupération des composants Parlez entre vous
La prise de contact peut être exécutée en tant que conteneur autonome ou déployée sur un serveur Wildfly existant. Il implémente un cadre de composants enfichables utilisant Quartz, ActiveMQ Artemis, Mongo DB et Derby. Le package est fourni avec des interfaces source et cible, des classes de transformation (classes java configurables qui manipulent du contenu ou des métadonnées) et un moteur de licence. Toutes les interfaces peuvent être étendues, mais disposent des fonctionnalités les plus élémentaires nécessaires pour générer des objets standard à traiter, se connecter aux systèmes requis et afficher dans l'interface utilisateur.
L'application frontale Angular est déployée séparément (généralement dans le même domaine / pare-feu). L'interface utilisateur elle-même peut communiquer avec n'importe quel nombre de serveurs et processeurs Wildfly. C'est un choix qui maximise notre capacité à faire évoluer et à étendre le cadre.
Des processeurs supplémentaires peuvent vivre sur du matériel source partagé sans aucune perte de performances. L'objectif final ici est de diffuser n'importe quel contenu sur les moteurs de recherche. Notre solution devait être suffisamment flexible pour s'interfacer avec une multitude de protocoles de stockage et de communication, sans impact sur les performances. En règle générale, nous déployons un serveur d'exécution Wildfly par serveur source, mais celui-ci est flexible et est défini par l'architecture du client.
L'application peut être mise en package et déployée en tant que .war géré localement ou en tant que conteneur docké (actuellement ECS uniquement, EKS est sur la feuille de route.)
Architecture des microservices

Exemple de deux instances de connecteur: le connecteur 1 a de nombreuses files d'attente, le connecteur 2 n'en a que 2, envoyant du contenu directement au moteur de recherche [19659015] Platforms & Technology – A Business Leaders Guide to Key Trends in Cloud » width= »300″ height= »232″ class= »alignnone size-medium wp-image-273762″ data-recalc-dims= »1″/>