如果同一微服务的多个实例包含其自己的数据库,为了实现可伸缩性,在执行创建,更新或删除操作时如何更新所有数据库?哪个工具与Eureka和Zuul spring兼容?
答案 0 :(得分:1)
我建议您使用基于事件的体系结构,其中任何服务都已完成其工作,从而产生了该事件,而其他订阅该事件的服务也将开始其工作。
您可以使用Kafka queue
。另外,请阅读Distributed Sagas for Microservices
另一件事是,内部通信使用UDP而不是TCP。
答案 1 :(得分:1)
如今,大多数数据库都以接近0的延迟提供复制。除非您使用其他数据库,否则可以让该数据库为您完成同步。
答案 2 :(得分:1)
我建议您使用 RabbitMQ
消息队列的基本体系结构很简单,有称为生产者的客户端应用程序可以创建消息并将其传递到代理(消息队列)。称为使用者的其他应用程序连接到队列并订阅要处理的消息。一个软件可以是消息的生产者或使用者,或者既可以是消息的使用者也可以是生产者。存储在队列中的消息将被存储,直到使用者检索它们为止。
为什么要使用RabbitMQ? https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html
rabbitMQ的正式文件。... https://www.rabbitmq.com/
如何安装rabbitMQ: https://www.journaldev.com/11655/spring-rabbitmq
Spring Boot应用程序中的配置: