use*_*877 1 messaging jgroups broadcast microservices
我正在使用微服务,假设我有 3 个服务,它们都通过 JGroup UDP 通道相互连接(JGroups 可以在它们之间广播消息):
--- --- ---
| A | --msg--> | B || C |
--- --- ---
Run Code Online (Sandbox Code Playgroud)
如果我每个服务只有一个实例,那么一切都很好。但是,例如,如果我有两个 service 实例,C它们都会收到事件,并且它们都会运行自己的过程,结果将在数据库中复制(两次求和)。
--- --- --- ---
| A | --msg--> | B || C || C |
--- --- --- ---
Run Code Online (Sandbox Code Playgroud)
有没有办法管理这个?
为每个微服务创建一个单独的队列(如果尚未创建)
在 Rabbit MQ 中,使用Fanout Exchange因此每个队列都会收到所有消息。
现在,如果单个微服务的多个实例绑定到同一个队列,那么只有一个实例能够从该队列中选择一条消息。由于队列的循环性质。
| 归档时间: |
|
| 查看次数: |
838 次 |
| 最近记录: |