Articles

Mise en œuvre de la découverte de services avec Spring Cloud (2e partie)

Dans cette deuxième partie, nous allons voir comment mettre en œuvre la découverte de services avec Spring Cloud. Préparez-vous à apprendre comment configurer et déployer vos services !

Partie 2 de l’Article Spring Cloud: Comment Implémenter le Service Discovery (Partie 1)

Dans la première partie de cet article, Spring Cloud: Comment implémenter le service de découverte (Partie 1), nous avons vu les bases du Service Discovery dans le contexte de Spring Cloud. Nous avons vu que la composante Netflix OSS Eureka est toujours le choix principal. Dans ce post, nous allons discuter de certains sujets supplémentaires liés à Eureka, tels que :

API Java Client

API REST

Sécuriser le serveur de découverte et les services clients

Combiner le Service Discovery avec la Configuration Distribuée

Service Discovery : API Java Client

Dans les exemples de la première partie de cet article, l’enregistrement et le récupération des fonctionnalités étaient exécutés sous le capot et nous avons seulement vu les résultats des tests de l’architecture entière en appelant un point de terminaison REST client. Il existe également une manière d’interagir avec l’API Eureka de manière programmatique, en utilisant des appels de méthodes Java. Un choix possible serait d’utiliser la classe EurekaClient. Par exemple, si nous voulons obtenir toutes les instances d’un service identifié par un ID particulier, nous pourrions écrire le code suivant, supposant que nous avons un client implémenté comme une application Spring Boot exposant des services REST :

EurekaClient eurekaClient = new EurekaClient.Builder().build();

Applications applications = eurekaClient.getApplications(« SERVICE_ID »);

List instances = applications.getInstances();

Une fois que nous avons obtenu la liste des instances, nous pouvons parcourir cette liste et récupérer les informations dont nous avons besoin, telles que l’adresse IP et le port sur lesquels le service est en cours d’exécution. Nous pouvons également effectuer des opérations supplémentaires sur les instances, telles que la mise à jour des informations ou la suppression d’une instance.

Service Discovery : API REST

Eureka fournit également une API REST qui peut être utilisée pour interagir avec le serveur de découverte. Cette API est très similaire à l’API Java client, mais elle est plus adaptée aux scénarios où nous devons interagir avec le serveur de découverte depuis un environnement non-Java ou depuis un script. Par exemple, si nous voulons récupérer toutes les instances d’un service spécifique, nous pouvons appeler l’URL suivante :

http://:/eureka/apps/

Cette URL retournera une réponse JSON contenant toutes les informations relatives à ce service et à ses instances. Nous pouvons également effectuer des opérations supplémentaires sur les instances, telles que la mise à jour des informations ou la suppression d’une instance, en appelant des URL spécifiques.

Service Discovery : Sécurisation du serveur et des services clients

Enfin, il est important de noter que le serveur Eureka et les services clients doivent être sécurisés pour éviter toute attaque malveillante. Par exemple, nous pouvons configurer Eureka pour utiliser HTTPS pour sécuriser les communications entre le serveur et les clients. Nous pouvons également configurer Eureka pour authentifier les clients et leurs requêtes en utilisant un système d’authentification basé sur des jetons. De plus, il est possible de configurer Eureka pour

Source de l’article sur DZONE

Partie 2: Microservices avec Apache Camel et Quarkus

Dans cette partie, nous allons apprendre à créer des microservices avec Apache Camel et Quarkus. Nous verrons comment les deux outils peuvent être utilisés ensemble pour créer des applications modernes et performantes.

Exécution locale d’une application microservices basée sur Apache Camel et AWS SDK

Dans la première partie de cette série, nous avons vu une application de transfert d’argent simplifiée basée sur les microservices, mise en œuvre à l’aide des outils de développement Java Apache Camel et AWS SDK (Software Development Kit) et de Quarkus comme plate-forme d’exécution. Comme indiqué, il existe de nombreux scénarios de déploiement qui pourraient être envisagés pour exécuter la production d’une telle application; le premier et le plus simple consiste à l’exécuter localement de manière autonome. C’est le scénario que nous examinerons dans ce nouveau post.

Quarkus est capable d’exécuter vos applications de deux manières: en mode JVM (Java Virtual Machine) et en mode natif. Le mode JVM est la manière classique standard d’exécuter des applications Java. Ici, l’application en cours d’exécution n’est pas exécutée directement sur le système d’exploitation, mais dans un certain milieu d’exécution où des bibliothèques et des API Java sont intégrées et enveloppées. Ces bibliothèques et API peuvent être très volumineuses et elles occupent une partie spécifique de la mémoire appelée Resident Set Size (RSS). Pour en savoir plus sur le RSS et Quarkus (par opposition à la façon dont Spring Boot le gère), voir ici.

Lorsque vous exécutez votre application avec Quarkus en mode JVM, vous pouvez utiliser un outil appelé GraalVM pour compiler votre application en code natif. GraalVM est un outil open source qui permet de compiler des applications Java en code natif. Il prend en charge plusieurs langages, dont Java, JavaScript, Ruby, Python et R. GraalVM est capable de compiler votre application Java en code natif très rapidement, ce qui permet à votre application de s’exécuter plus rapidement et avec moins de consommation de mémoire. Il est également possible d’utiliser GraalVM pour compiler votre application en code natif et l’exécuter directement sur le système d’exploitation, sans passer par le mode JVM. Cela permet à votre application de fonctionner plus rapidement et avec une consommation de mémoire minimale.

Ainsi, grâce à l’utilisation du logiciel Quarkus et de GraalVM, vous pouvez facilement déployer votre application microservices-based money transfer sur votre système local. Vous pouvez également utiliser GraalVM pour compiler votre application en code natif et l’exécuter directement sur le système d’exploitation, ce qui permet à votre application de fonctionner plus rapidement et avec une consommation de mémoire minimale. Cela peut être très utile pour les applications qui nécessitent une exécution rapide et une consommation minimale de mémoire. De plus, vous pouvez également déployer votre application sur des plates-formes cloud telles que AWS ou Azure afin de bénéficier des avantages supplémentaires offerts par ces plates-formes.

Source de l’article sur DZONE

Tutoriels vidéo : messages Java consommateur/producteur entre serveur Kafka

Les tutoriels vidéo sur les messages Java consommateur/producteur entre serveur Kafka sont une excellente façon d’apprendre à maîtriser cette technologie. Découvrez comment configurer et utiliser cette technologie !

Comment envoyer et recevoir des messages entre un consommateur Java et un producteur et le serveur Apache Kafka dans cette série de tutoriels vidéo

Premier Paragraphe

L’architecture Apache Kafka est un système de messagerie distribué qui peut être utilisé pour construire des applications de streaming et de traitement des données. Il est largement utilisé dans les applications de streaming et de traitement des données pour la mise en œuvre de pipelines de traitement des données complexes. Dans cette série de tutoriels vidéo, nous allons explorer la procédure d’envoi et de réception de messages entre un consommateur et un producteur Java et le serveur Apache Kafka. Nous allons également examiner le code Java pour consommer des messages à partir du serveur Apache Kafka.

Deuxième Paragraphe

Le code Java pour consommer des messages à partir du serveur Apache Kafka est assez simple. Tout d’abord, vous devez créer un objet KafkaConsumer et spécifier le type de données que vous souhaitez consommer. Ensuite, vous devez définir le serveur Apache Kafka sur lequel vous souhaitez envoyer les messages. Enfin, vous pouvez appeler la méthode subscribe () pour s’abonner à un sujet et commencer à recevoir des messages. Vous pouvez également spécifier le type de données que vous souhaitez recevoir à l’aide de la méthode subscribe ().

Troisième Paragraphe

Une fois que vous avez abonné un sujet, vous pouvez appeler la méthode poll () pour récupérer les messages du serveur Apache Kafka. La méthode poll () prend en charge plusieurs paramètres, notamment le temps d’attente maximal, le nombre maximum de messages à récupérer et le type de données à récupérer. Une fois que vous avez récupéré les messages, vous pouvez les traiter en fonction des besoins de votre application. Une fois que vous avez traité les messages, vous pouvez les envoyer à un autre serveur Apache Kafka ou les stocker dans un magasin de données.

Source de l’article sur DZONE

Créer une architecture de microservices avec Java

Créer une architecture de microservices avec Java est une tâche complexe, mais qui peut offrir des avantages considérables. Découvrons comment le faire !

« Approche de l’Architecture des Microservices »

En premier lieu, l’architecture des microservices est une approche où un système logiciel est décomposé en services plus petits et indépendants qui communiquent entre eux via des API. Chaque service est responsable d’une fonction commerciale spécifique et peut être développé, déployé et mis à l’échelle indépendamment. Cela facilite la maintenance et la modification du système, car les modifications apportées à un service n’affectent pas l’ensemble du système.

Les avantages de l’architecture des microservices sont nombreux. Tout d’abord, elle permet une plus grande flexibilité et une plus grande évolutivité. Les services peuvent être développés, déployés et mis à l’échelle indépendamment les uns des autres, ce qui permet d’ajouter ou de supprimer des fonctionnalités sans affecter le reste du système. De plus, les microservices sont plus faciles à tester et à maintenir car ils sont isolés et peuvent être testés individuellement.

Java est un excellent choix pour la construction de microservices. Java est une plate-forme très populaire et très répandue, ce qui signifie qu’il y a une grande communauté de développeurs qui peuvent aider à résoudre les problèmes. De plus, Java est très bien adapté pour la construction de microservices car il prend en charge les tests unitaires et intégrés, ce qui permet aux développeurs de tester facilement leurs services. Enfin, Java est très flexible et peut être utilisé pour construire des services basés sur des conteneurs ou des machines virtuelles.

En résumé, l’architecture des microservices est une approche moderne pour construire des systèmes logiciels flexibles, évolutifs et faciles à maintenir. Les avantages de cette approche sont nombreux, notamment une plus grande flexibilité et une plus grande évolutivité. Java est un excellent choix pour la construction de microservices car il prend en charge les tests unitaires et intégrés et est très flexible.

Source de l’article sur DZONE

Ma liste de souhaits JPA 2.0

Je souhaite que JPA 2.0 apporte des améliorations pour faciliter le développement et la gestion des données. Je vais énumérer mes principaux souhaits pour cette version.

« Profiter de la persistance facile avec JPA 1.0 jusqu’à présent »

Le codage a toujours été un élément essentiel de la programmation Java. Jusqu’à présent, nous avons bénéficié d’une persistance facile grâce à JPA 1.0. Il est vrai que JPA 1.0 a ses limites, mais maintenant nos amis de JSR-317 travaillent dur pour nous offrir un meilleur standard de persistance pour Java.

La nouvelle spécification JPA 2.0 offre une variété d’améliorations par rapport à la version précédente. Les principales caractéristiques de JPA 2.0 sont les suivantes : une API plus riche, une gestion des transactions plus flexible, un support pour les requêtes natives et une gestion des schémas plus robuste. La nouvelle spécification offre également une meilleure intégration avec les technologies Java EE 6 telles que EJB 3.1 et JSF 2.0.

Le codage est l’un des principaux avantages de JPA 2.0. La nouvelle API permet aux développeurs d’utiliser des annotations pour définir leurs entités et leurs relations, ce qui simplifie considérablement le codage et permet aux développeurs de se concentrer sur la logique métier plutôt que sur la configuration des données. La nouvelle API permet également aux développeurs de créer des requêtes natives personnalisées pour interroger la base de données, ce qui réduit considérablement le temps et les efforts nécessaires à l’exécution des requêtes.

Enfin, JPA 2.0 offre une meilleure gestion des schémas, ce qui permet aux développeurs de créer des schémas plus robustes et plus cohérents. La nouvelle API permet aux développeurs de créer des schémas plus complexes et plus riches en fonctionnalités, ce qui permet une meilleure organisation des données et une meilleure performance globale.

En somme, JPA 2.0 offre une variété d’améliorations par rapport à JPA 1.0 et permet aux développeurs d’utiliser le codage pour créer des applications plus robustes et plus performantes. Les nouvelles fonctionnalités offertes par JPA 2.0 permettent aux développeurs de créer des applications plus riches en fonctionnalités et plus faciles à maintenir, ce qui en fait un outil très puissant pour les développeurs Java.

Source de l’article sur DZONE

Analyser et Classer le Sentiment des Textes en Java

Découvrez comment analyser et classer le sentiment des textes en Java grâce à cet article ! Nous allons vous guider pas à pas pour vous aider à maîtriser cette technique.

L’empathie mutuelle joue un rôle clé dans la définition du succès de la relation entre une entreprise et ses clients

De la même manière que l’empathie mutuelle définit le développement de relations à long terme avec nos amis, elle joue également un rôle clé dans la définition du succès de la relation de notre entreprise avec ses clients. Lorsque les clients prennent le temps de taper leurs pensées et leurs sentiments dans une critique d’un produit ou d’un service, partager leurs sentiments via une plate-forme de médias sociaux ou fournir des commentaires via un médium similaire, il est de notre devoir d’éprouver de l’empathie pour eux en tant qu’êtres humains et de déterminer collectivement comment ils se sentent par rapport à ce qu’ils ont vécu. En utilisant des solutions programmatiques, nous pouvons rapidement analyser et ensuite ajuster (ou maintenir) l’expérience que nous offrons à nos clients à grande échelle, améliorant efficacement les relations des clients avec notre marque.

Bien sûr, contrairement au cerveau humain, les ordinateurs ne sont pas élevés et socialisés pour tirer des conclusions émotionnelles spécifiques d’une langue humaine en évolution. Ils doivent être formés pour le faire – et c’est là que le domaine de l’analyse et de la classification des sentiments entre en jeu. En utilisant des techniques de traitement du langage naturel (NLP), nous pouvons former des algorithmes d’apprentissage automatique pour analyser et classer des sentiments uniques dans le texte. Ces algorithmes peuvent être entraînés sur des jeux de données étiquetés qui contiennent des exemples de phrases et de leurs sentiments associés. Une fois entraînés, ces algorithmes peuvent être appliqués à des données non étiquetées pour prédire le sentiment associé à chaque phrase.

Les algorithmes d’analyse et de classification des sentiments peuvent être utilisés pour comprendre les sentiments des clients à l’égard de votre marque, produit ou service. Les données collectées peuvent être analysées pour déterminer si les clients sont satisfaits ou insatisfaits, et pourquoi. Les données peuvent également être utilisées pour identifier les points forts et les points faibles du produit ou du service, ainsi que pour comprendre les tendances et les préférences des clients. Les données peuvent également être utilisées pour améliorer l’expérience client en répondant aux besoins et aux préférences des clients. Enfin, les données peuvent être utilisées pour aider à développer des stratégies marketing plus efficaces et plus ciblées.

Source de l’article sur DZONE

PlatformCréer un client de secours avec Hazelcast Viridian Platform sans serveur

Vous pouvez facilement créer un client de secours avec Hazelcast Viridian Platform sans serveur, ce qui vous permet d’accéder à des données et services à tout moment.

Mise en place d’un client de basculement pour une stratégie de reprise après sinistre

En tant que scientifique informatique enthousiaste, je sais que le failover est une fonctionnalité importante des systèmes qui dépendent d’une disponibilité quasi constante. Dans Hazelcast, un client de failover redirige automatiquement son trafic vers un cluster secondaire lorsque le client ne peut pas se connecter au cluster primaire. Il est conseillé d’utiliser un client de failover avec la réplication WAN comme partie intégrante de votre stratégie de reprise après sinistre. Dans ce tutoriel, vous mettrez à jour le code d’un client Java pour qu’il se connecte automatiquement à un cluster secondaire de failover s’il ne peut pas se connecter à son cluster primaire d’origine. Vous effectuerez également un test simple pour vous assurer que votre configuration est correcte et l’ajusterez ensuite pour inclure la gestion des exceptions. Vous apprendrez comment recueillir toutes les ressources dont vous avez besoin pour créer un client de failover pour un cluster primaire et secondaire, créer un client de failover basé sur le client Java d’exemple, tester le failover et ajouter la gestion des exceptions pour les opérations.

Étape 1: Configurer les clusters et les clients

Créez deux clusters Viridian Serverless que vous utiliserez comme clusters primaires et secondaires, puis téléchargez et connectez des clients Java d’exemple à ceux-ci.

Une fois que vous avez créé les clusters et les clients, vous devez créer une base de données qui contient les informations sur les clusters primaires et secondaires. Cette base de données doit être accessible à partir du client Java afin qu’il puisse accéder aux informations relatives aux clusters primaires et secondaires. Vous pouvez créer cette base de données en utilisant n’importe quel type de base de données relationnelle ou non relationnelle. Une fois que vous avez créé la base de données, vous devez y ajouter les informations sur les clusters primaires et secondaires. Vous pouvez également ajouter des informations supplémentaires telles que l’adresse IP du cluster primaire et secondaire, le port utilisé par le cluster, le nom du cluster, etc.

Une fois que vous avez créé la base de données et ajouté les informations sur les clusters primaires et secondaires, vous pouvez maintenant configurer le client Java pour qu’il puisse accéder à cette base de données et récupérer les informations nécessaires. Pour ce faire, vous devez ajouter le code nécessaire à votre client Java pour qu’il puisse se connecter à la base de données et récupérer les informations nécessaires. Une fois que vous avez terminé cette étape, votre client Java est prêt à être utilisé pour se connecter aux clusters primaires et secondaires.

Source de l’article sur DZONE

I’m not an anti-GUI person. In fact, I wrote three books about web GUI development with Java. However, I also like the command-line interface (CLI), especially text-based UIs. After a year of exploring MariaDB and the DevOps world, I got to discover and play with many text-based CLI tools that I didn’t know even existed. These tools are especially useful when connecting to remote servers that don’t have a GUI.

One special CLI tool that I frequently use is the mariadb SQL client (or mysql in the MySQL world)—a CLI program used to connect to MariaDB-compatible databases. With it, you can send SQL queries and other commands to the database server.

Source de l’article sur DZONE

Jakarta EE is a unanimously adopted and probably the most popular Java enterprise-grade software development framework. With the industry-wide adoption of microservices-based architectures, its popularity is skyrocketing and during these last years, it has become the preferred framework for professional software enterprise applications and services development in Java.

Jakarta EE applications used to traditionally be deployed in run-times or application servers like Wildfly, GlassFish, Payara, JBoss EAP, WebLogic, WebSphere, and others, which might have been criticized for their apparent heaviness and expansive costs. With the advent and the ubiquitousness of the cloud, these constraints are going to become less restrictive, especially thanks to the serverless technology, which provides increased flexibility, for standard low costs.

Source de l’article sur DZONE

I will run a book giveaway promotion on the Code Ranch on January 17th. Be sure to be there and let your friends know. It would be great to answer your questions about debugging. I’m very excited by this and by the feedback I’m getting for the course and new videos. 

I also launched a free new Java course for complete beginners. No prior knowledge needed. This is probably not the audience for this course. But if you know someone that might be interested I’ll appreciate a share. I hope people find it useful and learn a bit about Java. I’m working on a cadence of one video per week in this beginner course.

Source de l’article sur DZONE