在选择messagebroker(raabitmq、redis等)或其他适合这种情况的工具时,我需要一些帮助。
我正在升级我的游戏服务器。它是由node.js编写的。它由游戏室、大厅、聊天室等多个进程组成,当用户提出请求时,消息将被路由到相关进程进行处理。我通过代码路由来实现这一点,每个进程通过节点ipc相互通信。但是,这不是太有效,而且不可扩展。另外,有些进程的工作负载很高(因为有很多请求与之相关),我们创建了多个lobby进程,并将消息随机路由到不同的lobby进程。我认为messagebroker可以在这种情况下提供帮助,而且我甚至可以通过在不同的物理服务器中放置不同的进程来扩展。我想知道哪个消息代理适合这个?发送者是否可以将消息发送到一个队列,该队列中有多个使用者竞争一条消息,而只有一个使用者使用该消息并将消息回复给发送者?谢谢。
1条答案
按热度按时间pzfprimi1#
我不能从经验中谈论kafka,但是任何消息队列解决方案,rabbitmq和activemq都可以满足您的需要。
我猜你在计划这样的流程:
notificationmanager可以是一个服务,它通过WebSocket或任何其他异步通信方法让用户知道。
一些解决方案最好放在一起,减轻你的负担。不仅是消息队列,而且是任务队列的解决方案将有办法从工作者那里获得响应。
机械,一个最近引起我注意的项目,在使用mongodb和rabbitmq本身的同时,完成了所有这些。