【发布时间】:2016-08-08 14:42:39
【问题描述】:
目前我正在开发一个分布式测试执行和报告系统。我打算使用 Redis PUB/SUB 作为消息队列和消息分发系统。
我是 Redis 新手,所以我尝试阅读尽可能多的文档并尝试使用它。最重要的主题之一是高可用性。正如我所说,我不是专家,但我知道可能的选择 - 使用 Sentinel、复制、集群等。
我不清楚 Pub/Sub 功能和 HA 选项是如何相互关联的。使用 Redis 构建可靠的消息传递系统的最佳实践是什么?可靠是指如果我的 Redis 消息代理出现故障,应该有某种备份节点(从属节点?)应该能够接管这个角色。
是否有纯粹的服务器端解决方案?或者我是否需要围绕 Redis 客户端创建一个智能包装器来处理这个问题? Sentinel 驱动的设置对我有帮助吗?
【问题讨论】:
-
没有在分布式设置中使用过pubsub,但我认为redis首先是一个数据服务器。 Pubsub 是顶上的一颗樱桃。如果您必须拥有可靠的分布式消息队列,则有专门的解决方案。听说 RabbitMQ 不错。
-
是的,我们开始以这种方式使用 Redis(作为“共享字典”)——但是当我们的项目正在形成时,事实证明基于消息的通信可能更适合我们的需求. Redis 就在那里,它支持它,所以我们开始将它用作消息代理。不过,没有什么是一成不变的,我们也会检查其他解决方案。