用spring cloud加hazelcast配置为cluster模式。
用做消息服务器的消息转发,做IM即时聊天。
之前的一版是参考了Teamtalk的架构,中间用router-server来对不同的message-server做消息路由,来提供横向的扩展能力。
现在想通过在message-server里集成hazelcast来处理这块的逻辑。
通过Topic(push/receive)来处理消息,还是ExecutorService来直接对消息服务器所在节点直接调用?哪个方式更好一些。
Topic这种已实现,默认只能对所有节点进行“广播”,然后再判断消息类型,进行下一步处理或丢弃;当然也可以通过topicName来对间接实现针对某一节点的“广播”。
但ExecutorService这种方式直接支持指定一个或多个member,进行调用,理论上实现起来更直观一些,也能避免一些没用的调用。