消息总线中的总线发现

2024-02-07

我正试图了解消息总线和国际奥委会,但我的脑子里充满了问题。

这就是我想到的场景

三台电脑通过局域网连接,无法访问互联网。这三台计算机各自运行一个服务,并自动自我发现其他计算机,换句话说,它们各自在公共总线上发送消息?这表明了他们自己的身份。

从那时起,他们可以交换任何类型的消息。

在第一个实例中,仅使用消息总线架构是否可以实现这一点?

如果是的话,自我发现位将如何工作?我看到的所有示例似乎都是特定于机器的本地队列。我似乎找不到向远程队列发送消息或完成自我发现的示例。

我有一个与 .Net 中的 rebus 一起使用的本地服务,但现在希望了解拼图中缺失的部分。

我现在并不是在谈论任何使用 ASP.Net 或任何东西的花哨设置。 任何帮助是极大的赞赏


所以我不知道画画,但我可以深入谈论MassTransit。

如果我希望一个没有互联网连接的系统能够自动注册总线,以便与对等方交换消息,我会想到两个主要选项。

  1. RabbitMQ 或 MSMQ 有一个已知的中央位置,每个实例都连接到该位置。使用 RabbitMQ,每个人都使用 RabbitMQ 实例,例如rabbitmq://10.0.0.10/my_queue 作为ReceiveFrom配置中的地址。对于 MSMQ,订阅服务队列位置为 msmq://10.0.0.10/mt_subscriptions。然后ReceiveFrom队列应为 msmq://localhost/my_queue。一旦总线共享一个中心位置,所有对等点就可以进行通信。

  2. 拥有“两总线”系统。首先使用MSMQ的多播进行发现。基本上每分钟左右广播一条消息,直到找到中央服务器,然后启动另一条总线,如#1,但使用多播总线提供的地址。如果您使用 RabbitMQ,则意味着混合 RabbitMQ 和 MSMQ 总线。

  3. 第三种可能性(但不是很好)就是使用 MSMQ 的多播订阅客户端。这并不完美,因为多播不是为生产用途而设计的。但是,如果权衡可以接受,那么您可以使用它。 MSMQ 多播在服务开始执行和订阅完全协商之间存在启动延迟。如果您立即开始发布,这可能会导致消息丢失。多播需要同一子网上的所有计算机,或者使用路由器支持 vodoo magic*,以使多播能够跨子网工作。

值得注意的是,此时这与 IoC 无关。这实际上只是一个配置问题。 MassTransit 的想法是,一旦您注册了公交车,只要公交车的另一个​​成员向它发布消息 - 该消息将自动结束该消息的所有消费者。

*注意:我很确定不是黑巫毒魔法但就我而言,确实如此。您需要其他人的帮助才能完成这项工作。

第二个注意事项:对于 MSMQ,使用ReceiveFrom在本地主机上排队。发送到远程主机的效果很好,但是当出现问题时,读取数据就很难诊断。

第三个注意事项:我每次都会在 MSMQ 上推广 RabbitMQ,除非您要求所有对等点都注册到 DTC。如果这是对你的要求,我祝你好运,克服所有的心痛。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

消息总线中的总线发现 的相关文章

  • 通过 Unity 获取同一消息的多个消费者在 MassTransit 中不起作用

    我最近遇到了很多问题 因为似乎是一个错误MassTransit UnityIntegration包 主要是因为没有考虑注册名称 例如 如果我像这样注册我的课程 var container new UnityContainer Registe
  • 使用 MassTransit 使用交换和路由密钥发布消息

    我已经关注 MassTransit 几个星期了 我对它的可能性很好奇 但是 我似乎无法完全正确地理解这些概念 预期行为我想将消息发布到带有路由密钥的 直接 交换 该路由密钥绑定到两个不同的队列以执行其他活动 当我尝试使用 MassTrans
  • 大众运输消息输入错误

    我尝试通过 MassTransit 发布的消息遇到了基本类型问题 考虑以下 Serializable public abstract class Event CorrelatedBy
  • 传奇中的公共交通延迟响应

    我正在研究在公共交通中使用传奇来协调跨多个服务的活动 传奇的生命周期很短 如果一切顺利的话不到 2 秒 对于我的用例 我想使用请求 响应方法 即客户端请求命令 saga 处理该命令 在接收消息时经历一些状态更改 并最终响应启动 saga 的
  • 有没有办法从 MassTransit 获取原始消息?

    我有一个具有通用参数的消费者IEvent 该类型是所有消息的基接口 以及子接口IEvent还有一些其他属性 我希望能够访问具有嵌套类型的所有属性的原始消息 而不仅仅是IEvent范围 这些属性可以通过 RMQ 管理仪表板查看 我认为应该有一
  • Localstack 与 MassTransit 未收到消息

    我在使用 LocalStack 测试 MassTransit 时遇到问题 但在 AWS 中使用真正的 SNS SQS 一切正常 因此我怀疑这是 LocalStack 的问题 除非 MassTransit 需要配置 ServiceURL 以外
  • 一个 rebus 进程中的多个输入队列

    我正在使用 top shelf 和 rebus 编写一个 多工作人员 应用程序 我的想法是使用MyWorker1Namespace MyWorker1Namespace Messages MyWorker2Namespace MyWorke
  • MassTransit 与 RabbitMQ:消息何时移至错误队列

    我正在使用 RabbitMQ 版本 3 0 2 我在错误队列中看到接近 1000 条消息 我想知道 消息在什么时候被移至错误队列 有没有办法知道为什么某个消息被移动到错误队列 有什么方法可以将消息从错误队列移动到正常队列吗 谢谢 a 无法反
  • MassTransit 将消息速率上限限制为 10

    我设置了一个与 RabbitMQ 配合使用的公共交通消费者服务 但我不知道如何提高消费者的速度 它似乎硬性限制为每秒接收 10 条消息 我已经尝试过此处列出的步骤 https groups google com forum msg mass
  • 使用 MSMQ 和 SQL Server 进行分布式事务,但有时会出现脏读

    我们的 SQL Server 2014 数据库设置为READ COMMITTED SNAPSHOT 我们使用 MSMQ 和分布式事务 我们使用 MassTransit 2 10 在我们系统的一部分中 我们从队列中读取一条消息 进行数据库更新
  • 配置要在 Consumer 中传递的端点时添加元数据

    因此 当我配置端点并设置ep Consumer
  • CQRS 项目是否需要像 NServiceBus 这样的消息传递框架?

    过去 6 个月的学习曲线充满挑战 CQRS 和 DDD 是罪魁祸首 这很有趣 我们的项目已经完成了 1 2 我还没有时间深入研究的领域是消息传递框架 目前我不使用 DTC 因此如果我的读取模型未更新 那么很可能会出现读取和写入数据库之间的不
  • MassTransit/RabbitMq 错误队列 - 如何删除消息?

    我有一个队列 QueueName 我定义了消费者和错误消息消费者如下 cfg ReceiveEndpoint queueName QueueName e gt e UseMessageRetry r gt r Immediate 2 e A
  • 派生类型不会发布给 MassTransit 中的消费者

    我在发布派生类型的通用消息以及使用 MassTransit v2 8 0 调用处理程序时遇到问题 如果我发布一条类型的消息HtmlBlockNewMessage 消费者永远不会被调用 如果我发布一个ServiceBusMessage反对并改
  • nServiceBus、公共交通、Rhino 服务总线、其他?

    只是做一些快速的尝试 以可能使用消息传递系统来处理良好解耦的工作流系统中的文件 人们发现使用上述每个框架的优点和缺点是什么 与带有 WCF 绑定和 或非 MSMQ 解决方案的手动 MSMQ 系统相比 使用这些有哪些优势 我建议远离手动解决方
  • 如何在 MassTransit 3.0 中使用分散/聚集模式实现传奇

    吉米 博加德 Jimmy Bogard 描述麦当劳快餐连锁店here https lostechies com jimmybogard 2013 03 11 saga implementation patterns observer 将其与
  • Rebus 如何与 Azure 服务总线主题配合使用?

    我是 Rebus 和 Azure 服务总线的新手 想了解 Rebus 如何与 Azure 服务总线主题和队列配合使用 我已经成功地让 Rebus 与 ASB 合作 但对幕后发生的事情有点困惑 我有一个 ASP NET Core 应用程序 它
  • SqlConnection 并避免升级到 MSDTC

    当我们需要在应用程序中进行数据库访问时 我们使用以下模式 为了查询 我们有一个带有方法的静态工厂类CreateOpenConnection其作用无非是new SqlConnection myConnectionString 并打电话Open
  • 如何使用 MassTransit 测试工具通过构造函数依赖注入来测试 Consumer?

    我有一些消息使用者通过构造函数获取依赖项 我想在单元测试中涵盖它们 MassTransit 的测试工具是否提供了一种使用构造函数参数注册消费者的方法 创建消费者测试工具时 您可以指定工厂方法或消费者工厂 harness Consumer
  • MassTransit 生成我想忽略的_skipped 队列

    任何人都可以猜出问题是什么 因为我不知道如何解决这个问题 大众运输产生 skipped队列 我不知道为什么它会生成这些队列 它是在执行发布请求响应时生成的 请求客户端是使用 MassTransit RequestClientExtensio

随机推荐