使用 Hazelcast 通过队列进行请求-回复

unl*_*udo 6 java hazelcast

我想知道我是否可以这样做:

  • 1 个 hazelcast 实例/成员(中心点)
  • 1 个带有 hazelcast-client 通过队列发送请求的应用程序
  • 1 个带有 hazelcast-client 的应用程序等待队列中的请求

第一个应用程序还接收第二个应用程序发布的另一个队列上的响应。

这是一个继续的好方法吗?或者您想到更好的解决方案吗?

谢谢!

unl*_*udo 2

我自己做了一个测试,并验证它在一定限制下工作良好。

该架构是生产者-Hazelcast_node-消费者

使用两个 Hazelcast 队列,一个用于请求,一个用于响应,我可以测量不到 1 毫秒的往返时间。

如果我将多个消费者放入请求队列,则负载平衡工作正常。

如果我添加另一个节点,并将客户端连接到每个节点,则往返时间将超过 15 毫秒。这是由于 2 个 hazelcast 节点之间的复制造成的。如果我杀死一个节点,客户端会继续工作。因此,故障转移是以时间为代价的。