- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力了解消息总线和 ioc,但我的脑袋里充满了问题。
这是我的设想
三台电脑通过局域网连接,无法上网。这三台计算机各有一个运行并自动 self 发现其他计算机的服务,换句话说,它们各自在公共(public)总线上发送消息??标识自己。
从那时起,他们可以交换任何类型的消息。
这在第一个实例中仅使用消息总线架构是可能的吗?
如果是, self 发现位将如何工作?我看到的所有示例似乎都是特定于机器的本地队列。我似乎找不到向远程队列发送消息或完成 self 发现的示例。
我有一个在 .Net 中使用 rebus 的本地服务,但现在希望了解拼图中缺失的部分。
目前我不是在谈论任何使用 ASP.Net 或任何东西的奇特设置。非常感谢任何帮助
最佳答案
所以我不知道 rebus,但我可以深入讨论 MassTransit。
如果我希望没有 Internet 连接的系统能够自动注册到总线中,以便它可以与其对等方交换消息,我会想到两个主要选项。
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。一旦总线共享一个中心位置,那么所有对等点都可以通信。
拥有“双总线”系统。首先使用MSMQ的多播进行发现。基本上每分钟左右广播一条消息,直到找到中央服务器,然后启动另一条总线,如#1,但使用多播总线提供的地址。如果您使用 RabbitMQ,则意味着混合使用 RabbitMQ 和 MSMQ 总线。
第三种但不是很好的可能性是使用 MSMQ 的多播订阅客户端。这并不完美,因为多播不是为生产用途而设计的。但是,如果折衷可以接受,那么您可以使用它。 MSMQ 多播在服务开始执行和订阅完全协商之间有一个启动滞后。如果您立即开始发布,这可能会导致消息丢失。多播需要同一子网中的所有机器或使用路由器的 back vodoo magic* 才能使多播跨子网工作。
值得注意的是,此时这与 IoC 无关。这实际上只是一个配置问题。 MassTransit 的想法是,一旦你注册了一辆公共(public)汽车,只要公共(public)汽车的另一名成员向它发布消息——该消息将自动结束给该消息的所有消费者。
*注意:我很确定这不是黑伏都教魔法,但就我而言它是。您需要其他人的帮助才能完成这项工作。
第二个注意事项:对于 MSMQ,使用本地主机上的 ReceiveFrom
队列很重要。发送到远程主机工作得很好,但是当出现问题时,从中读取就更难诊断了。
第三条注意:我每次都会通过 MSMQ 提升 RabbitMQ,除非您要求所有对等方都注册 DTC。如果这是对你的要求,我祝你好运,克服所有的心痛。
关于masstransit - 消息总线中的总线发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23488670/
我正在尝试设置 MassTransit 请求/响应场景。问题是消息永远不会到达消费者。我在 PublishRequest 上收到“超时等待响应”错误。日志文件中没有显示其他错误。正在 msmq 中创建
我在传奇中有一些状态并尝试实现状态检查重试,直到我在收到的消息中获得一些令人满意的值。 说,我有这样的事情: .During(Pending, When(StatusChecked)
我在为派生类型发布通用消息以及使用 MassTransit v2.8.0 调用处理程序时遇到问题。 如果我发布类型为 HtmlBlockNewMessage 的消息,永远不会调用消费者。如果我发布 S
我正在尝试在一个微服务中发布消息并在另一个微服务中获取它,但无法使用带有RabbitMQMassTransit 5.5.3 来实现此目的强>. 据我所知,我们不必创建 ReceiveEndpoint
我们对需要保存到某个审计日志数据库的一组事件使用空标记接口(interface)。 但是,在消费者中,消息被强制转换到这个接口(interface),所以我们得到一个空对象。 我们真正需要的是获取“动
我有一个 MassTransit 示例程序,它发布 1 条正文为当前时间戳的消息。然而,奇怪的是,消费者总是有 5 次被调用。 程序如下: public class MassTransitTest {
究竟什么是消费者传奇,它与 Automatonymous 有何不同?我知道 Automatonymous 是 MassTransit 使用的独立库。 最佳答案 Consumer sagas,因为没有更
我正在尝试了解 MassTransit 和 RabbitMQ 并排队(第 1 天) 我的问题是“为了在 MT 中排队工作,是否需要消费者。我问的原因是因为我首先创建了域和生产者,但我没有在 Rabbi
我正在尝试理解 topology of queues并交换 MT 在 RabbitMQ 中创建的。 我不能得到这两个陈述: we generate an exchange for each queue
有谁知道两个应用程序是否可以使用二进制序列化程序通过 MassTransit.RuntimeServices 相互通信? 一旦我将总线配置为使用二进制串行器,应用程序就会在调用 UseSubscrip
我正在尝试结合 Azure 服务总线了解 MassTransit 配置。 在配置时,有 2 个方法具有重载:SubscriptionEndpoint和 RecieveEndpoint .我如何理解使用
我已经开始研究 MassTransit 并正在编写将处理消息的类。当我从 Consumes 实现接口(interface)时我有四个选项:All , Selected , For和 Context .
我有一个 MassTransitStateMachine 来编排一个涉及创建多个事件的过程。 完成所有事件后,我希望状态转换到“清理”阶段。 下面是相关的状态声明和过滤函数: Duri
我有一个特定的标题,我想将它附加到我发布的所有消息中。我可以通过在 Publish 中指定它来逐个附加此 header 。称呼: _bus.Publish(myMessage, context =>
我正在努力了解消息总线和 ioc,但我的脑袋里充满了问题。 这是我的设想 三台电脑通过局域网连接,无法上网。这三台计算机各有一个运行并自动 self 发现其他计算机的服务,换句话说,它们各自在公共(p
我正在为每个消费者实例寻找一种方法来接收通过 MassTransit 发布到 RabbitMQ 的消息。场景是,我们有多个微服务需要在通知时使缓存无效。 Pub-Sub 在这种情况下不起作用,因为每个
我在 fork/join 配置中有一个传奇设置。 在 saga 上定义的事件 FileMetadataMsg FileReadyMsg SomeOtherMsg 当文件进入单独的监听器时,进程开始。
我在下面看到了一个问题及其答案; https://stackoverflow.com/a/46128844/7419921 虽然我知道我不能通过 MassTransit 对错误队列做任何事情,但我应该
什么是状态机 状态机作为一种程序开发范例,在实际的应用开发中有很多的应用场景,其中.NET 中的async/await 的核心底层实现就是基于状态机机制。状态机分为两种:有限状态机和无限状态机,
当您发布消息而不是发送消息时,我在理解 MassTransit 和 Azure 发生的情况时遇到了一个小问题。 基本上我有一个 DownloadWebpage 操作和一个 WebPageDownloa
我是一名优秀的程序员,十分优秀!