Redis 是适合公司警报消息系统的消息系统吗?

Is Redis an appropriate message system for a corporate alert messaging system?

我被要求为我的组织创建一个简单的警报消息传递系统。我一直在研究 Redis,我想知道我是否应该用它作为通信引擎来构建应用程序。

我的要求是:

我正在考虑为作曲家建立一个带有 asp.net 页面和 SQL 服务器作为数据存储库的网络场。我还计划在场中拥有一系列 WCF 端点,以处理服务器间通信和服务器-客户端通信。

服务器间通信用于协调和分发接收警报的客户端列表,而服务器-客户端通信用于将实际警报发送到客户端计算机。

我对这种方法的思考越多,就越意识到需要多少活动部件。 (从每个客户端发送到服务器的心跳,从所有服务器发送到彼此的心跳...)

自从阅读了有关 Redis 的内容后,我想知道是否可以删除 WCF 端点并使用 Redis 的 Pub-Sub 功能来处理消息分发? Redis 是否将发布事件分发到集群中的所有节点?我可以让我的所有客户端应用程序直接订阅 Redis 数据库吗?这些连接是否会在集群上保持平衡?

Redis 集群还很年轻,对Redis 来说不是一个很大的优势。主要用于redis节点之间的数据分片。 Redis sentinel主要是管理一个master(写)和多个slave(读)。平衡客户端之间的负载应该是手动 AFAIK。 redis的分区容忍度其实很差(不过其他的还算不错)

您需要可靠的送货吗?您需要重新发送消息吗? Redis 不会那样做,如果你没有订阅,那么你将不会收到消息,也不会帮助你检查哪些消息已经发送(或者你在 redis 上使用企业集成模式实现你自己的系统)。另外redis不耐用,崩溃会导致数据丢失。

对于集群上的发布订阅,我建议您看一下 apache Kafka,它在集群技术中非常流行,尤其是在大数据方面。

http://kafka.apache.org