我正在寻找替换内部键值存储和调度系统,并且我不断听说 RabbitMQ 可能是一个解决方案。
我了解使用队列发送和接收消息,并且这些事件是由创建消息的生产者和接收消息的消费者触发的。
但是如果在发送消息后创建消费者会发生什么?消费者可以询问队列最后一条消息是什么吗?如果没有,我是否需要包含某种数据库来存储这些消息?或者我正在寻找其他技术?
一个用例是我想要一个 GUI 来获取/设置本地网络上其他应用程序使用的参数。在初始化时,GUI 需要知道最后的值是什么。
在尝试回答我自己的问题时,RabbitMQ 可能不是我正在寻找的。我可能想改用 Kafka,它将最新的键:值对存储在表中。或者我可能想使用 Redis。你觉得怎么样?
感谢您的协助。
我想我为我的问题找到了满意的答案。我正在寻找创建一个请求-答复模型,RabbitMQ 能够很好地处理该模型。打开 GUI 后,它会向其他进程发送对某个变量的请求,这些变量存储在内存或数据库中。该进程以请求的数据进行响应。够简单的。
我建议将rabbitmq与redis集成,我将这种方法实现为poc。我来处理这个案子没问题。
Redis 似乎是一个简单的选择。它能够存储每个参数的最新状态并允许快速检索。但是,如果您的系统还需要解耦、异步消息传递用于其他目的,您可能仍然会考虑将 RabbitMQ 与 Redis 结合使用,其中 RabbitMQ 处理消息传递,Redis 维护状态。
有关rabbitMQ的更多详细信息,请查看此文档 https://www.rabbitmq.com/documentation.html
有关redis的更多详细信息,请查看 https://redis.io/docs/
这是rabbitmq与redis的sudo代码
总体架构