首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分布式事件处理

分布式事件处理
EN

Stack Overflow用户
提问于 2014-06-12 18:32:43
回答 1查看 613关注 0票数 0

嗨,这可能是一个有点新手的问题,但我似乎找不到一个适合以下用例的解决方案:

在后端,我们有x个跨虚拟机分布的服务,每个服务都提供相同的服务(分布式复制)。这些服务都在侦听分布式事件总线(如Hazelcast)。

当事件到达时,例如GetDataA,EventBus基础设施将该事件逐个发送到每个后端服务。如果服务决定要处理事件,它就会这样做,并通过EventBus将数据返回给事件的发布者。

一旦一个服务决定要处理一个事件,那么EventBus应该停止向其他侦听器(服务)发送该事件,并继续路由下一个事件(即它应该是非阻塞的)

因此,这种解决方案需要一种异步运行的请求/响应分布式事件架构。

有没有人知道这个领域有什么可扩展的解决方案。我已经看过Hazelcast了,但是事件机制意味着所有的监听器都会得到这个事件。我已经查看了Executor服务,但它将代码发送到其他节点,而我正在寻找的是另一个单独的节点来处理请求。

EN

回答 1

Stack Overflow用户

发布于 2014-06-13 03:25:24

你可以使用Hazelcast IExecutorService做到这一点。可以对如何发送任务进行细粒度控制

  • send to all members
  • send to a subset of members
  • send to any members(不管是哪个成员)
  • 发送给特定成员
  • 发送给拥有特定分区的成员。H210F211

还有一个使用未来的选项,如果你不想阻塞,你可以将未来与异步回调机制结合起来。而且executor不会向节点发送代码;代码(字节码)已经存在。所以你只是在发送数据。

另一种选择是,如果您不想通知所有人,而只想通知特定的成员,则可以创建点对点解决方案。这可以使用IQueue来完成。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24182206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档