其他分享
首页 > 其他分享> > spring – 具有多个实例的微服务事件驱动设计

spring – 具有多个实例的微服务事件驱动设计

作者:互联网

在片刻,我们设计并计划将我们的系统转换为微服务架构模式.

为了松散耦合,我们考虑使用JMS主题的事件驱动设计.这看起来很棒.但我现在不知道如何通过微服务的多个实例解决问题.
对于故障转移和负载平衡,我们有每个服务的n个实例.如果事件发布到主题,则每个实例将接收并处理该事件.

可以使用数据存储中的锁定和处理状态来处理此问题.但是这个解决方案看起来非常昂贵,每个实例都有相同的工作.这对我来说不是负担.

这种模式有一些好的解决方案或最佳实践吗?

解决方法:

为什么不使用队列而不是主题?然后你的实例将竞争消息而不是全部获得副本.

编辑

rabbitmq可能更适合你 – 发布到扇出交换并拥有任意数量的队列,每个队列都有任意数量的竞争消费者.

我还看到了竞争客户端使用相同客户端ID连接的JMS主题.一些(所有?)经纪人只允许一个这样的客户消费.其他人一直试图重新连接,直到目前的消费者死亡.

标签:spring,jms,microservices,spring-jms,event-driven-design
来源: https://codeday.me/bug/20190612/1222924.html