春季启动微服务的不同实例和数据完整性

时间:2018-07-27 15:31:40

标签: database spring-boot

如果同一微服务的多个实例包含其自己的数据库,为了实现可伸缩性,在执行创建,更新或删除操作时如何更新所有数据库?哪个工具与Eureka和Zuul spring兼容?

3 个答案:

答案 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应用程序中的配置:

https://spring.io/guides/gs/messaging-rabbitmq/