Apache ShenYu (en incubation) a publié 2.4.3, une passerelle API réactive multilingue asynchrone hautes performances

Apache ShenYu (en incubation) 2.4.3

Liu Yi, Xiao Yu, Apache ShenYu

Gestionnaire de version

/ Apache ShenYu PPMC

Après 3 mois, Apache ShenYu a de nouveau publié la version 2.4.3. Le contenu de cette version compte plus de 200 pull requests, plus de 30 contributeurs ont participé, de nombreuses nouvelles fonctions ont été ajoutées, de nombreux bugs ont été corrigés et de nombreuses optimisations ont été apportées. de contenu

Vol.1  Nouvelles fonctionnalités

  • Ajout d'un mécanisme de nouvelle tentative pour le client Http enregistré.
  • Le type de contenu pris en charge est flux d'octets.
  • Prend en charge la redirection des URI de Bootstrap.
  • Ajout de l'autorisation de l'API locale.
  • Prend en charge la configuration de la taille du pool de threads du consommateur Dubbo.
  • Prend en charge le mécanisme de nouvelle tentative d'échec pour le plug-in Divide.
  • La configuration client pour Webscoket est prise en charge.
  • 支持 MemoryLimitedLinkedBlockingQueue。
  • Prend en charge le pool de threads partagé du plug-in Alibaba Dubbo.
  • Prend en charge le pool de threads partagés du plug-in gRPC.
  • Ajout du plugin Metrics.
  • Ajouter le plug-in de cache.
  • Ajout du plug-in Logging RocketMQ.

Éléments d'optimisation Vol .2

  • Mettez à jour JUnit4 vers JUnit5.
  • Optimisez le cryptage des mots de passe.
  • Optimisez et vérifiez les paramètres d'interface du module shenyu-admin.
  • Lors de l'optimisation de la synchronisation des données, code qui initialise les données.
  • Ajout de tests d'intégration pour le plugin LoggingRocketMQ.
  • Utilisez l'algorithme de cycle planifié dans la classe ScheduledExecutorService.
  • Refactorisez la méthode buildHandle de l'URI enregistré dans admin.
  • Optimisation du client Spring Cloud pour définir automatiquement le port.
  • Plugin JWT refactorisé pour prendre en charge les jetons à plusieurs niveaux.
  • Personnalisation optimisée des paramètres netty de la passerelle et configurable

Vol .3 Correction d'un bogue

  • Correction de l'exception de pointeur null lors de l'initialisation de la classe CommonUpstreamUtils.
  • Jugement fixe lorsque l'enregistrement Nacos échoue.
  • Correction de l'exception de pointeur nul lors de la connexion d'un utilisateur non enregistré.
  • Résoudre le problème d'impression répétée du journal de démarrage.
  • Correction du problème selon lequel le nombre de tentatives et le délai d'expiration ne prenaient pas effet.
  • Résoudre le problème d'erreur d'analyse de jeton.
  • Résoudre le problème selon lequel Websocket transmet anormalement des données volumineuses.
  • Correction du plug-in NettyHttpClient qui ne réessaye pas en cas d'échec.
  • Correction de la vulnérabilité CVE-2021-41303.
  • Correction d'un problème où le jugement de toutes les conditions d'inclusion de plug-in n'avait pas d'effet.
  • Résoudre le problème des en-têtes HTTP perdant des données.
  • Correction du plug-in de réécriture ne prenant pas en charge les espaces réservés d'URL.
  • Résoudre le problème des données de synchronisation anormales dans Nacos.
  • Correction d'un échec du proxy Websocket ou d'une exception de pointeur nul lorsque le plug-in ContextPath est ouvert.
  • Correction de la vérification de l'occupation du port pour les clients Http enregistrés.

Vol .4  Éléments supprimés

  • Supprimez le plug-in Monitor.
  • Retirez le module shenyu-agent.

Instructions pour le plug -in de métriques Vol.5

Le plug-in Metrics est utilisé par la passerelle pour surveiller son propre état d'exécution (lié à la JVM), le délai de réponse à la demande, le QPS, le TPS et d'autres mesures connexes.

 

Utilisation de plugins

  • Ajoutez la dépendance des métriques dans le fichier pom.xml de la passerelle.

<dependency>    <groupId>org.apache.shenyugroupId>    <artifactId>shenyu-spring-boot-starter-plugin-metricsartifactId>    <version>${project.version}version><dependency>
  • Modifiez les éléments suivants dans le fichier yaml de configuration de la passerelle

shenyu:  metrics:    enabled: false  #设置为 true 表示开启    name : prometheus     host: 127.0.0.1 #暴露的ip    port: 8090 #暴露的端口    jmxConfig: #jmx配置    props:      jvm_enabled: true #开启jvm的监控指标

Pour des informations spécifiques sur les métriques, veuillez consulter la description officielle du site : https://shenyu.apache.org/zh/docs/plugin-center/observability/metrics-plugin

Instructions du plug-in de cache Vol.5

Le plug-in Cache peut mettre en cache les résultats du service cible et permet également à l'utilisateur de configurer le délai d'expiration des résultats mis en cache.

                                                                                                           Utilisation de plugins

  • Ajoutez la dépendance de cache dans le fichier pom.xml de la passerelle.

<dépendance> 
    <groupId>org.apache.shenyu</groupId> 
    <artifactId>shenyu-spring-boot-starter-plugin-cache</artifactId> 
    <version>${project.version}</version></dependency>
  • Scénarios où les données ne sont pas mises à jour fréquemment et nécessitent un grand nombre d'appels.

  • Pour les scénarios qui ne nécessitent pas une cohérence élevée des données.

Vol.5 Journalisation des instructions du plug -in RocketMQ

La passerelle Apache ShenYu reçoit la requête du client, transmet la requête au serveur et renvoie le résultat du serveur au client. La passerelle peut enregistrer les informations détaillées correspondant à chaque requête,  

Répertorié comme : heure de la demande, paramètres de la demande, chemin de la demande, résultat de la réponse, code d'état de la réponse, chronophage, IP en amont, informations d'exception en attente.  

Le plugin Logging-RocketMQ est un plugin qui enregistre les journaux d'accès et envoie les journaux d'accès au cluster RocketMQ.

 

Utilisation de plugins

Ajoutez des dépendances dans le fichier pom.xml de la passerelle.

<dépendance> 
    <groupId>org.apache.shenyu</groupId> 
    <artifactId>shenyu-spring-boot-starter-plugin-logging-rocketmq</artifactId> 
    <version>${project.version}</version></dependency>

 La configuration spécifique et la fonction de chaque paramètre se trouvent sur le site officiel : https://shenyu.apache.org/zh/docs/plugin-center/observability/logging-rocketmq

 

Planification de la prochaine version

 

Caractéristiques

Ajouter un plan de cluster

Ajout du module shenyu-proxy pour prendre en charge le mode cluster de ShenYu et l'expansion et la contraction dynamiques des passerelles

Ajout du sous-projet shenyu-nginx pour se connecter au module Nginx-upstream

SDK multilingue ajouté

Le SDK multilingue est principalement destiné à permettre à d'autres types de langues d'accéder rapidement à la passerelle shenyu

https://github.com/apache/incubator-shenyu-client-donet

https://github.com/apache/incubator-shenyu-client-golang

https://github.com/apache/incubator-shenyu-client-python

Ajout de la prise en charge de Helm

                                 

 

Rejoignez-nous

  Apache ShenYu est une passerelle API multi-protocoles, plug-in et hautes performances qui rejoindra l'incubateur Apache en mai 2021

Comment contribuer

https://shenyu.apache.org/zh/community/contributor-guide

                            

 

Je suppose que tu aimes

Origine www.oschina.net/news/191869
conseillé
Classement