【发布时间】:2023-10-15 06:24:01
【问题描述】:
我正在构建一个基于消息的 Web 应用程序,它应该实时显示股票报价,
我选择 RabbitMQ 作为我的消息总线,我有一个交易所,它从几个流动性提供者那里获取报价流,并根据路由键将它们路由到相应的队列。 然后报价被解析并显示在屏幕上的相关小部件上。
这是 Exchange 和队列结构 -
| exchange | type | routing key | queue |
|------------------------------------------------------------------|
| quotes | topic | NASDAQ.MSFT.500 | Widget1Id |
| quotes | topic | NASDAQ.FB.1500 | Widget2Id |
| quotes | topic | S&P500.ABT.200 | Widget3Id |
| quotes | topic | S&P500.MMM.200 | Widget4Id |
| quotes | topic | S&P500.MMM.500 | Widget5Id |
所以.. 当我想将队列 Widget1Id 的路由键更改为 S&P500.ACN.200
时,问题就开始了我考虑了几个选项:
1. Delete Widget1Id queue and recreate is.
2. Unbind the queue and bind it again using the new routing key
(makes me always save the old routing key)
哪种方式最快?
最安全?
会让我丢失更少的数据吗?
如果您对我建模队列和路由键的方式有任何 cmet,我很乐意听到。
提前感谢
【问题讨论】:
-
你有没有考虑过像zeromq.org这样的其他框架?
标签: websocket queue rabbitmq amqp stomp