问题标签 [nservicebus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
1668 浏览

soa - 您使用什么工具来实现 SOA/消息传递?

NServiceBusMassTransit是两个可用于实现与 MSMQ 和其他消息队列的消息传递的工具。

我发现一旦您开始使用消息传递来让应用程序相互通信,您并不想回到旧的 RPC 样式。

我的问题是,还有哪些其他工具?你用什么工具?

0 投票
2 回答
2057 浏览

c# - 使用带有动态端点的 MSMQ 实现订阅者/发布者系统

我正在尝试创建一个反馈系统,将所有消息发布到然后发布回正确的子系统。我们正在大量使用队列,我想让订阅者代码尽可能干净。我想根据我进入反馈系统并发布给其特定订阅者的消息 ID 来关闭。我不想为每个订阅者提供服务来监听消息。我在想我可以为每个订阅者设置一个队列并触发调用 com+ 组件。但我正在寻找一种更现代的方式。 .

我正在研究 NServiceBus 但似乎我需要为每个侦听系统创建一个服务/可执行文件/webservice(创建 C# dll 和调用方法的工作量要少一些)而且我不确定 NServiceBus 是否可以处理基于预加载配置(从 db 加载)的动态端点。WCF 也是一种选择.. 它可以肯定地处理动态端点..

您认为对于新系统订阅的代码租赁量/可扩展性的最佳解决方案是什么?

谢谢

0 投票
2 回答
821 浏览

architecture - 使用 NServiceBus 时如何跨应用程序共享消息类?

所以我有两个独立的应用程序,我想在它们之间发送消息。我碰巧在使用 NServiceBus,但这并不重要。如何从应用程序 A 向应用程序 B 发送消息并让他们都知道同一个合同?

所以应用 A 有一个 SecretMessage 类...

这是将被序列化并通过线路发送到应用程序 B 的对象。

现在在应用程序 B 中,我如何侦听该类型的消息,然后能够将它们反序列化到同一类?所以我可以使用发送的数据,而不会成为维护的噩梦。

应用 B 是否只需要拥有该课程的副本?这是否应该通过每个应用程序都引用的消息类的共享 dll 来处理(我希望不是)?是否应该在每个应用程序中将它们重新创建为具有相同属性的完全独立的 DTO?

我在这里错过了什么吗?

0 投票
5 回答
6523 浏览

c# - nServiceBus、Rhino 服务总线、MassTransit - 视频、演示、学习资源

嘿,人们很想听听您拥有或知道的有关 nServiceBus、Rhino Service Bus 和 MassTransit 的任何资源。

  • 视频?
  • 博客文章?
  • 图书?
  • 演示项目等
0 投票
1 回答
1405 浏览

nservicebus - 在 nServiceBus 中订阅来自多个发布者的消息

我想知道是否可以使用 nServiceBus 订阅所有类型的消息而不指定发布者的端点。

其背景是一种分布式算法,它使用 nServiceBus 的分发器基础结构将子问题委托给网络上的分布式工作者。

任务完成后,工作人员应发送消息通知发送者。

我可以使用 IBus.Reply() 来通知它,但我也有一些监视和日志记录服务,它们也对这些消息感兴趣。让发件人重新发布所有收到的回复听起来不对。

我可以在 nServiceBus 中订阅来自多个发布者的消息吗?

0 投票
1 回答
2010 浏览

c# - NServiceBus 延迟消息处理

我有一个 NServiceBus 应用程序,由于某些外部事件尚未发生,因此可能无法处理给定消息。因为这个其他事件不是 NSB 事件,所以我无法正确实现 sagas。

但是,我不只是将消息重新排队(这将导致循环直到发生外部事件),而是将消息包装在另一条消息(DelayMessage)中并将其排队。DelayMessage 由不同的服务获取并放置在数据库中,直到重试间隔到期。此时,延迟服务将消息重新排列在原始队列中,以便可以进行另一次尝试。

但是,如果该外部事件仍未发生,这种情况可能会发生不止一次,并且在这种情况甚至从未发生过的情况下,我想限制消息的往返次数。这意味着 DelayMessage 具有 MaxRetries 属性,但是当延迟服务将原始消息排队以进行重试时,该属性会丢失。

我还缺少哪些其他选择?我很高兴接受这个问题有一个完全不同的解决方案。

0 投票
1 回答
746 浏览

c# - 通过 WCF 桥接 NSB

我正在尝试发布一个发送到 NSB 主机的 WCF 服务。我查看了 NSB 示例中的 WebServiceBridge 示例,但无法弄清楚如何在 WCF 对应项中使用 NServiceBus.WcfService 类。

我发现我可以让我的服务接口继承一个或多个 IWcfService < TRequest, TResponse >,但是由于服务类不能继承多个基类(WcfService),是否可以让一个服务实现服务多个消息类型?

0 投票
2 回答
3693 浏览

nservicebus - 在 NServiceBus 中将通用主机作为服务安装时,如何提供有效凭据?

想象一下,我在以下目录中创建了一个 .bat 文件:

\trunk\Samples\PubSub\

系统提示我输入用户名和密码,但使用我自己的凭据时出现异常,如下所示:

安装阶段发生异常。System.ComponentModel.Win32Exception: 帐户名无效或不存在,或指定帐户名的密码无效

  1. 我可以通过什么凭据来使其正常工作?

  2. 我可以将凭据配置为NServiceBus.Host.exe的命令行参数或作为“本地系统帐户”运行吗?

笔记:

到目前为止,我的研究表明(2)可能是TopShelf通过它的 IInstallationConfiguration 支持的东西

我在已经安装了 MSMQ 的 Vista 机器上执行此操作。

如果我只是将订阅者实例作为控制台应用程序运行(即像这样),则 PubSub 示例将按预期运行:

0 投票
2 回答
5161 浏览

log4net - 如何为 NServiceBus 通用主机启用日志记录

我不想让标题太长,但这个问题专门指将 NServiceBus 通用主机作为 Windows 服务运行(感谢 TopShelf),配置为作为本地系统运行(在 Vista 机器上)

上一个问题中,我解释了为什么我决定调整 PubSub 示例以作为 Windows 服务运行,以便我可以轻松地停止和启动服务,以向自己充分证明 NServiceBus 正在做它应该做的事情。

出于某种原因,我无法让 Log4Net 将任何内容记录到磁盘,所以这很可能只是 Log4Net(新手)配置问题?

下面是我进行某种跟踪的蛮力尝试——到目前为止,我得到的只是文件编写如下:

C:\logs\<-GUID->log4net.log

0 投票
1 回答
2765 浏览

nhibernate - NServiceBus 和 NHibernate - 消息处理程序和事务

据我了解,NServiceBus 在事务中执行 IMessageHandler 的 Handle 方法,如果异常传播出此方法,则 NServiceBus 将确保将消息放回消息队列(在错误队列之前最多 X 次)等。所以我们有一个原子操作可以这么说。

现在,如果我在我的 NServiceBus 消息句柄方法中做这样的事情

这对交易范围有什么影响?就其与 Nservicebus 事务的关系而言,trans1 现在是否算作嵌套事务,即使我们没有做任何事情来将它们结合起来?(如果不是,如何链接到 NServiceBus 的事务?

查看第二个块(trans2),如果我取消注释 throw 语句,NServiceBus 事务是否也会回滚 trans1?在基本场景中,假设我将上述内容转储到控制台应用程序中,然后 trans1 是独立的、提交、刷新并且不会回滚。我试图澄清现在我们坐在别人的交易中会发生什么,比如 NServiceBus?

以上只是示例代码,我不会直接使用会话,更像是通过 uow 模式。