gpt4 book ai didi

c# - Redis 队列与 MSMQ

转载 作者:IT王子 更新时间:2023-10-29 05:54:57 25 4
gpt4 key购买 nike

很长一段时间我们都在使用 msmq 和 redis 队列 (IRedisList)。几个月前,我们开始尝试 redis pub-sub。

我们的应用程序有二十多个服务,这些服务从队列中读取消息或使用 redis 订阅 channel 。我们还有十多个队列,我们​​向他们发送消息。该应用程序是多线程的。

那么我想从你这里得到什么?

现在我们有一些时间来决定我们想要使用上面的哪种队列以及我们想要用不同类型的队列替换什么。

我试图寻找有关 MSMQ VS Redis 的帖子,但没有找到足够的信息。

有人可以就此问题向我提出建议吗?

最佳答案

IMO,你想在这里比较苹果和橘子。

MSMQ 是企业级 MOM(面向消息的中间件,即队列系统),提供持久性、事务支持和一组丰富的功能。

Redis 是一种快速的内存数据结构服务器,您可以在其上构建排队系统。使用 Redis 正确实现 MSMQ 的基本功能已经是一项艰巨的任务。可能根本不可能实现高级功能(如分发交易支持)。

我建议尝试列出您期望从排队系统获得的属性:

  • 你需要坚持吗?
  • 您需要交易支持吗?
  • 您需要分布式事务支持吗?
  • 您是否需要“一次且仅一次”的传递语义?最多一次?至少一次?
  • 您是否需要多种重试策略(线性延迟、指数退避等...)?
  • 您需要异常/死队列吗?
  • 您需要保留元素吗?
  • 您需要队列浏览支持吗?队列管理功能?
  • 您需要项目优先级管理吗?
  • 您需要商品自动过期吗?
  • 您需要延迟的元素吗?
  • 您需要元素排序吗?最后值队列?
  • 您需要发布和订阅吗?使用多播?
  • 您是否需要在单个线程中同时从多个队列中出队?
  • 您是否需要高可用性和/或集群支持?
  • 你有高通量吗?您需要最佳性能吗?

根据您的要求,Redis 可能适合也可能不适合。但是不要指望使用 Redis 获得真正的 MOM 的花里胡哨。

最后一点:您提到了 Redis 发布/订阅功能。请注意,此机制根本不基于排队系统。无法保证使用 Redis 发布/订阅传递消息。如果订阅者不收听,该订阅者的项目将丢失。

关于c# - Redis 队列与 MSMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19537841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com