Maison  >  Article  >  Java  >  Sortie d'Apache Dubbo : Triple X mène une nouvelle ère de communication par microservices

Sortie d'Apache Dubbo : Triple X mène une nouvelle ère de communication par microservices

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 20:47:51530parcourir

Apache Dubbo a dépassé les 40 000 étoiles, et l'équipe est fière d'annoncer la sortie officielle de Dubbo 3.3 ! En tant que framework de microservices open source leader, Dubbo s'est toujours engagé à fournir aux développeurs des solutions hautes performances, évolutives et flexibles pour les services distribués. La version de Dubbo 3.3, avec la mise à niveau Triple X, brise les limitations précédentes, offrant une prise en charge complète du trafic nord-sud et est-ouest et améliorant la compatibilité avec les architectures cloud natives.

Présentation de Dubbo

Apache Dubbo est un framework de microservices léger et hautes performances initialement développé en Java. Depuis, il s'est étendu pour prendre en charge plusieurs langages, tels que Go, Rust et Python, ce qui le rend idéal pour créer des systèmes distribués multilingues et multiplateformes. Dubbo fournit de riches fonctionnalités de gouvernance des services, notamment l'enregistrement et la découverte des services, l'équilibrage de charge, la tolérance aux pannes et le suivi de la chaîne d'appels, qui aident les développeurs à créer des architectures de microservices efficaces et flexibles.

Avec son évolution, Dubbo a considérablement amélioré ses performances de communication, sa gouvernance des services et sa compatibilité multilingue, ce qui en fait un outil puissant pour prendre en charge les architectures de microservices modernes.

Contexte de la mise à niveau Triple X

Dans ses premières applications, Dubbo a démontré d'excellentes performances en matière d'interopérabilité des services de centre de données. Cependant, à mesure que la technologie évoluait et que les scénarios d’application se multipliaient, l’architecture d’origine a commencé à présenter des goulots d’étranglement. Ces limitations sont devenues particulièrement évidentes dans les environnements inter-régions et multi-cloud, où les changements fréquents entre les frameworks Web et les frameworks RPC ont conduit à une complexité de développement accrue et à une diminution des performances du système.

Points douloureux de l'architecture traditionnelle :

  1. Limité aux applications de centre de données : dans les applications interrégionales ou intercloud, l'architecture traditionnelle de Dubbo manquait de prise en charge native des environnements étendus, obligeant les développeurs à basculer entre plusieurs protocoles et frameworks, complexité croissante.

  2. Défis liés au trafic nord-sud et est-ouest : les cadres RPC traditionnels, comme Dubbo, se concentrent souvent davantage sur l'optimisation du trafic de service à service (est-ouest). Cependant, le besoin d'une communication nord-sud efficace (client à serveur) s'est accru, créant de nouveaux défis.

  3. Exigences natives du cloud et multilingues : avec la croissance des technologies cloud natives, les systèmes nécessitent une meilleure prise en charge des protocoles HTTP et de la communication multilingue, des domaines où Dubbo traditionnel n'était pas optimisé.

Transformation et avancées de Triple X : La mise à niveau Triple X résout directement ces problèmes. Il perpétue les capacités de communication hautes performances de Dubbo tout en assurant une compatibilité totale avec le protocole gRPC, prenant en charge les protocoles HTTP/1, HTTP/2 et HTTP/3. Cela offre plus de flexibilité et d'efficacité pour les scénarios d'application inter-cloud et inter-régions.

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

Présentation des fonctionnalités du Triple X Core

  • Prise en charge complète du trafic : Triple X prend en charge le trafic nord-sud (client à serveur) et est-ouest (service à service). Ce support transparent garantit des conversions flexibles, améliorant l'efficacité globale des liens de communication.

  • Conformité à la norme du protocole gRPC : Triple X adhère à la norme du protocole gRPC, permettant la communication via Protobuf. Cela permet une interaction transparente avec les services gRPC et étend les capacités de communication multilingue et multiplateforme de Dubbo.

  • Construit sur le protocole HTTP, prise en charge native du cloud : Triple X est construit sur HTTP/1, HTTP/2 et HTTP/3, optimisant les performances du réseau et s'intégrant au cloud natif infrastructures, y compris la prise en charge de diverses passerelles et maillages de services.

  • Optimisation des hautes performances : Triple X offre des améliorations extrêmes des performances, en particulier dans les environnements de réseau à forte concurrence et faibles, améliorant considérablement le débit du système et la vitesse de réponse.

  • Migration fluide et compatibilité des frameworks : Triple X permet aux développeurs de migrer des projets Spring Web existants sans modifier le code, offrant un passage transparent vers Triple X tout en conservant la prise en charge des frameworks comme Spring MVC.

  • Haute extensibilité : avec plus de 20 nouveaux points d'extension SPI, Triple X permet la personnalisation des comportements de base, notamment le routage, l'analyse des paramètres, la sérialisation et la gestion des exceptions. Cela améliore la flexibilité, permettant aux développeurs d'adapter le cadre pour répondre aux besoins spécifiques de l'entreprise.

Scénarios d'utilisation du Triple X

Triple X dans Dubbo 3.3 propose des approches d'intégration flexibles pour les architectures de microservices, s'adaptant aux différentes exigences du système. En fonction de l'architecture du système, Triple X propose des approches d'intégration centralisées et décentralisées, ce qui le rend adapté à divers scénarios d'application.

1. Intégration centralisée

Dans une approche d'intégration centralisée, le trafic externe entre dans les services backend de Dubbo via une passerelle de services unifiée. La passerelle gère l'analyse, le transfert et le routage du trafic HTTP vers les services backend appropriés. Cette approche convient aux systèmes ayant des exigences élevées en matière de gestion unifiée du trafic, de contrôle des flux et de vérification des autorisations, permettant un contrôle centralisé du trafic entrant.

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

  • Scénario d'utilisation : pour les systèmes nécessitant une gestion centralisée des requêtes externes, telles que la surveillance du trafic et la limitation du débit, Triple X peut gérer efficacement le trafic HTTP/1, HTTP/2 et HTTP/3. via une passerelle de service et transmettez-le aux services Dubbo.

  • Avantages : Contrôle centralisé, facilité de gestion, adapté aux systèmes à grande échelle nécessitant une gouvernance unifiée du trafic.

2. Intégration décentralisée

Dans une approche intégration décentralisée, les clients externes peuvent accéder aux services backend Dubbo directement via HTTP, sans recourir à une passerelle intermédiaire. Cette approche convient aux systèmes ayant des exigences de hautes performances et de faible latence, car elle réduit la surcharge de communication en éliminant le besoin d'une passerelle, améliorant ainsi la vitesse de réponse du système. La suppression du nœud de passerelle évite également l'indisponibilité du système causée par des pannes de passerelle, simplifiant ainsi l'architecture de déploiement et améliorant la stabilité.

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

  • Scénario d'utilisation : Pour les systèmes qui doivent accéder aux services Dubbo directement via HTTP pour réduire les étapes intermédiaires et améliorer la vitesse de réponse, Triple X permet d'exposer les API REST sans passerelle.

  • Avantages : Élimine les étapes intermédiaires, améliore les performances, simplifie l'architecture, adapté aux applications à faible latence.

Répartition détaillée des capacités Triple X

1. Gestion complète du trafic et communication efficace

Dans les architectures de microservices complexes, gérer à la fois le trafic nord-sud (client vers serveur) et est-ouest (service à service) peut s'avérer difficile. Triple X utilise un protocole de communication unifié pour prendre en charge les deux, éliminant ainsi le besoin de basculer entre les frameworks Web et RPC, simplifiant le processus de développement et améliorant les performances et la maintenabilité.

Les développeurs peuvent utiliser Triple X pour une prise en charge efficace des requêtes initiées par les utilisateurs et de la communication interservices, le tout transmis de manière fluide via Triple X.

package org.apache.test;

@DubboService
public class UserServiceImpl implements UserService {
   // Handles east-west requests
}

// Triple X also supports north-south traffic
@DubboService
public class OrderService {
   @GetMapping("/order/{orderId}")
   public Order getOrderById(@PathVariable("orderId") String orderId) {}
}

2. Conformité à la norme du protocole gRPC

La communication entre les services multilingues est souvent un défi dans les systèmes distribués, et gRPC est une solution populaire. Triple X adhère à la norme de protocole gRPC, permettant une interaction transparente avec gRPC à l'aide de Protobuf, qui améliore les capacités de communication multilingue et multiplateforme.

Les services utilisant Triple X peuvent interagir directement avec les services basés sur gRPC sans adaptation supplémentaire, simplifiant ainsi le développement.

3. Construit sur le protocole HTTP, prise en charge native du cloud

Dans les environnements cloud natifs, les services doivent s'intégrer efficacement à diverses installations réseau telles que les passerelles API et les maillages de services, tout en prenant en charge différents protocoles HTTP pour améliorer les performances.

Triple X prend en charge HTTP/1, HTTP/2 et HTTP/3, permettant aux développeurs de tirer parti des avantages de ces protocoles, tels que les connexions longues, le multiplexage et la compression d'en-tête, sans configuration supplémentaire. HTTP/3 résout également les problèmes de blocage de tête de ligne et sa communication basée sur UDP maintient une qualité et des performances de service élevées dans des environnements réseau faibles.

Triple X permet de réutiliser le port Servlet existant de Spring Boot pour gérer le trafic HTTP, éliminant ainsi le besoin d'un port d'écoute Netty distinct. Cela simplifie l'architecture du réseau, réduit les coûts de maintenance, améliore la sécurité et permet au trafic de traverser plus facilement les pare-feu et les passerelles de l'entreprise.

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

4. Optimisation hautes performances, amélioration 5x du QPS

Dans les scénarios à forte concurrence, les protocoles de communication traditionnels entraînent souvent des goulots d'étranglement, affectant le temps de réponse et le débit du système.

Triple X utilise des technologies telles que Radix Tree et Zero Copy pour réduire l'utilisation du processeur et la consommation de mémoire, améliorant ainsi considérablement les performances du système, en particulier dans les environnements réseau à forte concurrence et faibles :

  • Routage efficace : utilise Radix Tree pour la correspondance d'itinéraire, optimisant l'algorithme de hachage de clé et prenant en charge les mises à jour dynamiques, ce qui réduit l'utilisation de la mémoire et améliore l'efficacité de la correspondance.

  • Utilisation optimisée de la mémoire : combine zéro copie avec la réutilisation d'objets, réduisant ainsi la surcharge de copie de données et de création d'objets, ce qui réduit la pression de récupération de place et augmente le débit.

  • Support HTTP/3 : utilise le protocole HTTP/3 basé sur QUIC, améliorant les performances dans des conditions de réseau faibles en réduisant la latence et en améliorant la fiabilité de la connexion.

  • Tests de résistance et optimisation multiprotocoles : L'équipe Dubbo a effectué des tests de résistance approfondis sur plusieurs protocoles et effectué plusieurs cycles d'optimisation, garantissant des performances optimales dans différents scénarios.

Les tests de performances montrent que, par rapport aux services Spring Boot REST traditionnels, les services REST simples utilisant Triple X atteignent cinq fois le QPS sous haute pression, réduisent les temps de réponse d'un tiers et réduisent l'allocation de mémoire de 50 %, améliorant considérablement les performances du système et l'efficacité des ressources.

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

Apache Dubbo  Released: Triple X Leads a New Era of Microservices Communication

5. Migration fluide et compatibilité des frameworks

Triple X prend également en charge la migration des projets Spring Web existants vers une architecture de microservices sans modifications significatives du code.

Triple X offre une solution de migration zéro intrusive, permettant aux développeurs de migrer des projets Spring Web existants vers Triple X sans modifier le code existant tout en prenant en charge des frameworks comme Spring MVC.

package org.apache.test;

@DubboService
public class UserServiceImpl implements UserService {
   // Handles east-west requests
}

// Triple X also supports north-south traffic
@DubboService
public class OrderService {
   @GetMapping("/order/{orderId}")
   public Order getOrderById(@PathVariable("orderId") String orderId) {}
}

Présentation des autres améliorations apportées à cette version

1. Prise en charge AOT des images natives

Dubbo 3.3 introduit la prise en charge de Native Image AOT (Ahead-of-Time Compilation), permettant aux développeurs de compiler des applications Dubbo dans des binaires natifs. Cela réduit considérablement le temps de démarrage et l'utilisation de la mémoire, ce qui le rend idéal pour les scénarios sans serveur.

2. Prise en charge du projet Loom

Dubbo 3.3 ajoute la prise en charge de Project Loom, optimisant la gestion des threads dans les scénarios à haute concurrence avec des threads virtuels, simplifiant le modèle de programmation asynchrone et améliorant la gestion de la concurrence.

3. Nouvelles règles de routage

Dubbo 3.3 introduit également de nouvelles règles de routage, prenant en charge un contrôle du trafic et une gouvernance des services plus flexibles, améliorant ainsi l'adaptabilité pour les déploiements de microservices à grande échelle.

Conclusion

La sortie d'Apache Dubbo 3.3 marque une étape importante dans la technologie de communication des microservices. Avec Triple X, Dubbo offre désormais une prise en charge complète du trafic nord-sud et est-ouest, une intégration transparente avec gRPC, une prise en charge native du cloud via les protocoles HTTP et des optimisations de performances significatives, offrant aux développeurs une solution puissante et outil flexible pour créer des systèmes distribués modernes.

Que vous ayez besoin d'améliorer l'efficacité de la communication interservices, d'atteindre une compatibilité multilingue ou d'optimiser les performances de communication natives du cloud, Dubbo 3.3 est le choix idéal pour relever les défis des systèmes distribués modernes. . Passez à Dubbo 3.3 dès aujourd'hui et découvrez la transformation apportée par Triple X, ouvrant la voie à une nouvelle ère de communication par microservices !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn