我是RabbitMQ的新手,但是我知道我的用例非常适合这种架构。
使用android应用程序,用户将按下“开始旅行”按钮。这将调用一个API,创建旅行。然后,android应用程序将定期发送数据,gps坐标,到API(将完成一些任务)。当用户完成旅行,另一个调用API将作出。
在此之前,API是使用Spring Boot编写的简单Restful。现在,我想对架构进行更改并添加RabbitMQ。
我认为,每当一个旅程开始时,API都会创建一个队列(queue_trip_XXX,因为XXX是旅程标识符),绑定到一个交换机(trip_exchange),交换机带有一个路由关键字(trip_XXX)。然后,GPS坐标将被动态地发送到交换机,并路由到相应的队列。当用户结束旅程时,队列将被删除。
因此,每次旅行都会有一个队列和一个唯一的交换。这合适吗?您是否有任何其他解决方案最适合此用例?
另一个问题是如何创建一个使用者来侦听发送到队列的消息?
谢谢你!
1条答案
按热度按时间sdnqo3pr1#
所以,每次旅行都会有一个队列和一个唯一的交换。这合适吗?
正如我在评论中提到的,我不认为这是一个好主意,因为RabbitMQ中的每个队列都是一个单独的Erlang进程。
有没有什么原因让你想把一个行程的消息和其他行程的消息分开处理?也许一个队列就足够了?
另一个问题是如何创建一个使用者来侦听发送到队列的消息?
我假设您已经有了两个节点(一个用于API,一个用于RabbitMQ代理),您只需创建第三个节点,它将负责处理数据。