通过Hazelcast做消息转发或调用,Topic/ExecutorService怎么实现比较好

用spring cloud加hazelcast配置为cluster模式。
用做消息服务器的消息转发,做IM即时聊天。

之前的一版是参考了Teamtalk的架构,中间用router-server来对不同的message-server做消息路由,来提供横向的扩展能力。

现在想通过在message-server里集成hazelcast来处理这块的逻辑。
通过Topic(push/receive)来处理消息,还是ExecutorService来直接对消息服务器所在节点直接调用?哪个方式更好一些。

Topic这种已实现,默认只能对所有节点进行“广播”,然后再判断消息类型,进行下一步处理或丢弃;当然也可以通过topicName来对间接实现针对某一节点的“广播”。
但ExecutorService这种方式直接支持指定一个或多个member,进行调用,理论上实现起来更直观一些,也能避免一些没用的调用。

代码地址在:
https://github.com/ccfish86/s...

阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏