问题标签 [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 投票
1 回答
311 浏览

messaging - 当我使用 NServiceBus 订阅消息时会发生什么?

当我使用 NServiceBus 订阅某种类型的消息时

我实际上在做什么?我是否指定接收者类型的特定方法将在收到消息时被调用?如果是这样,该方法在什么上下文中运行 - 在静态上下文中,或者在新的父类实例的上下文中(如果是这样,NServiceBus 如何知道要使用哪个构造函数)?

0 投票
1 回答
632 浏览

wcf - NServiceBus 是否适用于一般以及特定的客户端通知

我正在研究基于 WCF 的发布订阅框架的各种选项。假设我有一个 WCF Web 服务,它将作为发布者和 1000 个注册为订阅者的客户端。对于某些已发布的消息,所有客户端都会感兴趣,但同时我希望能够用特定消息通知单个客户端。收到通知后,客户端将调用 Web 服务上的其他 Web 服务方法。

NServiceBus 适合这种场景吗?如果我使用 MSMQ 进行传输,是否意味着安装了客户端的每台 PC 都需要创建一个队列?

0 投票
1 回答
1621 浏览

structuremap - 将 nServiceBus 与 StructureMap 集成的问题

我正在尝试将 StructureMap 与 nServiceBus 一起使用。

该项目:

  • 使用 GenericHost 端点发送命令消息
  • 使用 StructMapBuilder 配置 nServiceBus。
  • 使用简单的 StructureMap 注册表配置
  • 使用支持 IWantToRunAtStartup 的启动类 TestServer
  • TestServer 类对 TestManager 类具有 ctor 依赖关系
  • TestManager 类对 IBus 有 ctor 依赖

ObjectFactory.WhatDoIHave() 表明 StructureMap 知道如何构造类。

运行时出现累积错误。nServiceBus 似乎正在覆盖配置?

请注意,当我在没有任何其他配置的情况下向事件处理程序添加 IBus ctor 依赖性时,一切看起来都很好。

错误:

启动端点时出现异常,已记录错误。原因:创建名称为“nSeviceBusStructureMapTest.TestServer”的对象时出错:通过类型为 [nSeviceBusStructureMapTest.ITestManager] 的索引 0 的构造函数参数表示的依赖关系不满足:没有定义类型 [nSeviceBusStructureMapTest.ITestManager] 的唯一对象:类型 [nSeviceBusStructureMapTest. ITestManager]:预计至少有 1 个匹配对象连接到对象 [nSeviceBusStructureMapTest.TestServer] 的构造函数上的 [miningServiceManage] 参数

资源:

有任何想法吗?

0 投票
1 回答
607 浏览

wcf - 需要有关 WCF 每次调用服务和 NServiceBus 互操作的帮助/建议

我有 WCF Per-Call 服务,它为客户端提供数据,同时与 NServiceBus 集成。
所有有状态的对象都存储在集成到自定义服务主机中的 UnityContainer 中。
NServiceBus 在服务主机中配置,并使用与服务实例相同的容器。
每个客户端都有自己的实例上下文(Juval Lowy 在他的书中关于持久服务的章节中进行了描述)。

如果我需要通过总线发送请求,我只需使用某种调度程序并使用 Thread.Sleep() 等待响应。因为服务是每次调用的,这没关系。
但是我对来自总线的消息有点困惑,该服务必须处理并将它们提供给客户。对于股票报价等一些数据,我只是更新某种有状态的对象,然后,当客户调用 GetQuotesData() 时,只需提供来自该对象的数据。但是有许多服务消息,例如添加了新报价等。
目前我有一个想法来实现类似“邮递员守护进程”=)) 并将这种类型的消息存储在实例上下文中。然后客户端将调用“GetMail()”,接收这些消息并解析它们。问题是 NServiceBus 消息是“基于接口的”,我不能通过 WCF 传递它们,所以我需要将它们转换为从某个抽象类派生的类型。

我不知道处理这种情况的最佳方法是什么。

0 投票
1 回答
1023 浏览

nhibernate - 如何在 NServicebus 消息处理程序中注入多个存储库?

我使用以下内容:

我对线程本地存储的问题是,在整个应用程序线程中使用相同的会话。当我看到一级缓存未被清除时,我发现了这一点。我想要的是在每次调用 IHandleMessages<>.Handle 之前使用一个新的会话实例。我怎样才能用结构图做到这一点?我必须创建一个消息模块吗?

0 投票
1 回答
1532 浏览

nservicebus - 如何正确设置 NServiceBus 以使用远程错误队列?

我正在尝试设置 NServiceBus 以使用远程错误队列来简化检查错误的管理。当我这样做时,当 NServiceBus.Host.exe 启动时出现以下错误:

2010-03-25 07:59:50,103 [1] 错误 NServiceBus.Utils.MsmqUtilities [(null)] <(null)> - 无法创建队列错误@C0NSERVICEBUS 或检查其存在。处理仍将继续。System.Messaging.MessageQueueException:队列路径名无效。在 System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath(String queuePath, Boolean throwException) 在 System.Messaging.MessageQueue.Exists(String path) 在 NServiceBus.Utils.MsmqUtilities.CreateQueueIfNecessary(String queueName)

这是我对 NServiceBus 的配置设置:

这是正常的预期行为,如果不是我做错了什么?

0 投票
1 回答
634 浏览

asynchronous - NServiceBus - 如何通过 Web 服务异步调用 NSB

我想实现类似于 web 服务桥示例的东西,但我不想等待 web 服务的响应。我希望调用是异步的。做这个的最好方式是什么?

我应该只使用 web 服务桥并调用 ProcessAsync 而不是 Process 吗?或者我是否应该不使用 web 服务桥而只创建一个调用 Global.Bus.Send 的 web 方法?

提前致谢

0 投票
1 回答
6480 浏览

c# - 负载平衡控制台应用程序或服务

因此,很容易对 ASP.NET Web 应用程序进行负载平衡。您在两台服务器之间设置了负载平衡器,如果 Web 服务器在端口 80 上没有响应,它将不会接收请求。

对于 C# 控制台应用程序或 Windows 服务,是否有任何经过验证的技术可以自行执行此操作?是否有任何框架可以知道对等进程是活着还是死了,做心跳等?

我一直在用NServiceBus进行一些试验,似乎对于某些类型的应用程序,它有助于将大部分工作作为对事件的响应来完成,这实际上使它更像一个 Web 应用程序,因此更容易通过多个进程进行扩展和负载平衡,但我觉得这是一个半生不熟的解决方案,因为在大多数情况下,通常需要一些“主”进程的概念来负责开始工作。

0 投票
1 回答
1042 浏览

nservicebus - 使用 NServiceBus Distributor 流程的优势

我从文章Getting the NServiceBus Distributor Working中了解了如何在 FullDuplex 示例上使用 NServiceBus Distributor 进程,这让我想知道:

为了使用分发器,我需要以下队列:

  • MyClientInputQueue - 单个客户端的输入队列
  • 分发者数据总线 - 分发者发送消息的队列
  • 分配器控制总线 - 分配器用于存储其状态的内容
  • server1messagebus - 第一个服务器实例的输入队列
  • server2messagebus - 第二个服务器实例的输入队列

这意味着为了与分发器一起扩展,每次我想与另一台服务器一起扩展时,我都需要一个独立的配置文件来指定一个新的服务器消息总线队列。如果我想缩减规模,我会留下残留的配置文件和队列。

这似乎是不必要的,因为在我没有分发器的测试期间,我注意到如果我启动另一个服务器实例(只需在调试时在 Visual Studio 中选择 Debug-Start New Instance)然后新程序实例(它是相同的二进制并且具有相同的配置文件和相同的输入队列)似乎与第一个实例的负载平衡相当好。当客户端发出请求时,这些请求似乎在服务器之间来回传递。

如果这种负载平衡是有效的,这意味着我可以简单地通过添加指向同一个高可用输入队列的重复实例来扩展,而无需任何额外的资源分配。那会容易得多!

那么,分销商的优势是什么?

我唯一的猜测来自Distributor 文档,该文档指出,分发器“设计为永远不会压倒任何配置为从中接收工作的工作节点”。我不能使用每个工作线程上的 MsmqTransportConfig 的 NumberOfWorkerThreads 属性来控制工作进程可以咀嚼多少工作?

0 投票
2 回答
668 浏览

asp.net - NServiceBus 在 ASP.NET Web 应用程序中托管时阻塞

我创建了一个简单的 Web 应用程序,其中填写了搜索表单,单击提交按钮,并通过 nServiceBus 发送带有搜索参数的消息。我在同一个项目中也有一个处理程序来接收消息(来自同一个队列)。出于某种原因,Web 服务器进程阻塞,直到收到消息后,这有什么原因吗?我在消息处理程序中设置了一个断点,它在请求完成之前中断......锁定浏览器,直到我允许代码继续。无论处理程序何时被触发,我都希望控制权返回到浏览器......

谢谢,D.尼迈耶