3

Notre application est constituée de plusieurs micro-services. Chaque microservice dispose d'une configuration pour sa propre instance de noisetier. Toutes les instances de noisetier forment un cluster avec des données distribuées. La carte répliquée Hazelcast est utilisée pour répliquer les objets de données (les DTO incluent plusieurs champs) entre ces micro-services. Les microservices sont hébergés sur AWS.Grappe de noisette: problème de sérialisation et de réplication

Il y avait un problème avec la sérialisation des objets de données, c'est pourquoi nous avons créé un projet séparé avec une configuration de sérialisation personnalisée. Tous les objets de données (classes Java) que nous voulons répliquer sont listés dans ce code de configuration. L'artefact construit à partir de ce projet de configuration est inclus dans chaque microservice en tant que dépendance maven. Cela aide à résoudre le problème de sérialisation.

Cette solution nous a conduit au nouveau problème qui apparaît si cela est nécessaire pour ajouter un nouvel objet de données. Tout d'abord, nous devons ajouter cet objet de données au projet config, puis reconstruire ce projet. Après cela, nous devrions reconstruire tous les micro-services avec une dépendance mise à jour et redéployer. Et si au moins l'un des micro-services n'a pas été reconstruit il y aura une erreur de sérialisation à cause de cette instance de micro-service très micro-service ne sait pas comment sérialiser un nouvel objet de données. Le processus de reconstruction et de redéploiement de toutes les applications n'est pas si commode pour nous.

S'il vous plaît, partagez votre expérience! Y a-t-il un moyen de le rendre plus facile?

Répondre

0

Il y a deux façons comment vous pouvez résoudre votre problème: