Redis 是适合公司警报消息系统的消息系统吗?
Is Redis an appropriate message system for a corporate alert messaging system?
我被要求为我的组织创建一个简单的警报消息传递系统。我一直在研究 Redis,我想知道我是否应该用它作为通信引擎来构建应用程序。
我的要求是:
- 提醒编辑器必须基于网络
- 警报消息必须能够发送到网络上的所有计算机或任何计算机子集
- 计算机客户端必须向系统确认它收到了消息
- 服务器必须可以跨数据中心集群化。
- 消息必须快速传递给客户
- 必须 运行 在 Windows 堆栈上
我正在考虑为作曲家建立一个带有 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,它在集群技术中非常流行,尤其是在大数据方面。
我被要求为我的组织创建一个简单的警报消息传递系统。我一直在研究 Redis,我想知道我是否应该用它作为通信引擎来构建应用程序。
我的要求是:
- 提醒编辑器必须基于网络
- 警报消息必须能够发送到网络上的所有计算机或任何计算机子集
- 计算机客户端必须向系统确认它收到了消息
- 服务器必须可以跨数据中心集群化。
- 消息必须快速传递给客户
- 必须 运行 在 Windows 堆栈上
我正在考虑为作曲家建立一个带有 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,它在集群技术中非常流行,尤其是在大数据方面。