我正在建立一个网站,接收有关足球比赛的实时更新。我正在使用RabbitMQ将更新发送给客户端(JS网站和Android / iOS应用程序)。
客户端应该只接收实时更新。换句话说,客户端应该只在用户登录时接收更新。没有历史记录。
为了实现这种行为,我考虑了以下架构:
x-message-ttl
。见下文。x-message-ttl
设置为0。这是正确使用AMQP / RabbitMQ来实现实时通知吗?
答案 0 :(得分:2)
是和否 - 你的一些前提是错误的。
In other words, a client should only receive updates when the user is logged in.
当用户未登录时,只需断开与RMQ的连接就可以了。Each user has a dedicated queue, which is bound to the exchange. This queue is created when the user account is created.
只有在建立与RMQ的连接后才能创建队列,这样你就可以覆盖When a user is not logged in, the message will be discarded immediately
部分。Messages are sent to the exchange by the backend, and forwarded to all queues
为了清楚起见,正是RabbitMQ从交换机转发到队列。