我对NServiceBus和Rhino Bus都很陌生,我想知道多个端点是否能解决我的问题。
我希望:
1.为开票消息创建一个端点,该端点在当时仅运行1个线程
2.有另一个EDI消息端点(~读取电子数据交换的传入文件),这里也只有1个线程。
3.所有其他消息应转到具有多个线程的“默认”端点。
4.客户端不应该知道端点。他们应该只发布到“总线网关”(unicastbus?)
5.我不想按惯例注册MessagHandler。所有注册都必须在代码中显式完成
在nservice bus和rhino bu
我有两种不同的类型要发布到同一队列。其中一种类型按预期发布,而另一种类型甚至无法进入队列。这些对象位于同一dll中,并位于同一命名空间中
还有其他人经历过这样的情况吗?所以问题是,我让nservicebus为我的web数据库初始化文档存储,它不知何故与nservicebus数据库发生了冲突。我撕下它并自己初始化了web db文档存储,它开始工作。发布更多信息:日志上怎么说?什么版本的NSB?您使用的是哪种持久性和传输技术?我将nservicebus 5与RavenDB和MSMQ一起使用。日志没有
使用NServiceBus 4.0.11
我想打电话
Bus.OutgoingHeaders["user"] = "john";
Header操纵示例显示了如何使用自定义主机调用它。
我想在使用NServiceBus.Host时调用它
所以实际上我想引用总线的实例,调用OutgoingHeaders。
尝试了IWantCustomInitialization,但在其中调用CreateBus时出现异常。不初始化也不是一个好办法
我应该如何调用Bus.OutgoingHeaders[“user”]
我正在为我所有的Saga处理程序编写简单的单元测试,基本上就是确保消息被捕获/处理
然而,其中一个Saga处理程序调用ReplyToOriginator,现在它抛出了一个异常,因为测试上下文没有被识别为有效的发起者
更具体地说,我的相关代码如下所示:
[TestInitialize]
public void Initialize()
{
_context = new TestableMessageHandlerContext();
_pro
我最近读了一些关于服务巴士的文章,想试一试
谷歌搜索到一个关于NserviceBus的好的初学者教程,bug目前还没有找到
有人知道一个关于NServiceBus的好的初学者教程吗?(从非常基础的水平开始)
在网上看到一些文献,但它们似乎不是初级材料。
非常感谢您花费的时间和精力。当然,NServiceBus网站上有
此外,您还可以查看上的信息。这里有DNRTV节目:请注意。NserviceBusWiki的教程断开了链接,因为教程中有一些代码示例指向GitHub的404页面。悲哀的我发现第一个
各位
我让NServiceBus日志按照以下说明正常工作:
但是,我使用的是Common.Logging。如果我使用LogManager进行Common.Logging,它不会记录日志
如果我使用log4net的LogManager,一切正常
有人对此有什么见解吗?Common.Logging是从log4net抽象出来的,用于NServiceBus的内部目的。Common.Logging是从log4net抽象出来的,用于NServiceBus的内部目的。。我需要以编程方式设置Common.Lo
我有一个分发服务器和两个工作服务器,分发服务器的存储队列中的消息不断增加,每条消息的大小为2 kb
我已经在这里通过Udi回复了
当分发服务器将消息分派到工作节点时,将从分发服务器的存储队列中清除消息。
也就是说,工作节点通常在之后立即发送就绪消息,导致存储队列再次填满
我不清楚“导致存储队列再次填满”语句
我希望分发服务器存储队列中的最大消息数应等于工作线程数,但事实并非如此
是否有控制分发服务器的存储队列清理行为可能缺少的任何配置?当工作进程重新启动时,队列将被清除。我猜您是在2.x下运行的
将NSB 4与此配置一起使用:
Configure.With()
.DefaultBuilder()
.XmlSerializer()
给出此错误警告
如何使用Configure.Serialization.Xml()?在Configure.Serialization.Xml()块之前的任何位置使用Configure.With()块
或者不要。XML是默认值,因此您根本不需要该块,除非您想使用其中一个重载来设置特定的设置
这些新设置正在慢慢取代fluent配置,其目标是使配置顺
我有一个数据库,它有许多队列,其中包含来自第三方产品的消息。我希望将这些消息导入到我的总线上进行处理,并相信我可以通过NServiceBus实现这一点,但我希望将所有消息导入托管在一个Windows服务中,该服务将在数据库队列上进行配置以进行监视
处理步骤如下:
1) 导入到总线
2) 转化为信息
3) 发送总线消息
每个NServiceBus将被配置为定期轮询数据库队列。当消息到达时,它将执行Bus.SendLocal以执行步骤1
然后,NSB主机将使用消息处理程序接收进程。在此消息处理程序中
单个进程中托管的唯一IEndpointInstances的数量是否有上限
我正在考虑一种设计,它最多可以看到100个独特的IEndpointInstances,它们都在单独的队列中侦听,同时处于活动状态
这会导致NServiceBus出现问题吗?进程是否会死锁或启动太多线程而导致无响应和无用
这个问题似乎表明,一个流程中不能有多个端点,但这是一篇较老的文章。我已经针对NServiceBus6构建了一个小样本——beta4,它确实有效
有一个类似的问题得出结论,根据OP的上下文,使用的是推荐的方法
我有一个SagaData类,它有很多冗余属性,我想在下一个版本中删除这些属性。然而,目前正在进行的传奇正在制作中,我不确定移除这些属性对SagaData类将对已经存在的传奇产生什么影响
Afaik NServiceBus负责为我们创建db表,其中一个表的所有冗余属性都是列。有谁能告诉我,如果从SagaData类中删除这些属性,将会发生什么。假设这些属性没有被使用,只会被填充,代码将被相应地重构。-我想知道我们的db会发生什么,现有的传奇会发生什么
谢谢我认为你的数据库不会发生任何事情。您必须通过
我们刚刚决定在我们的项目中使用NServiceBus,我们遇到了一些问题。我们宁愿“教自己钓鱼”,而不是每次遇到问题都“要一条鱼”。这意味着要进行设置,以便我们能够深入了解NServiceBus源代码并更深入地理解NServiceBus
我们需要一些帮助来解决这个问题。目前尚不清楚如何让Visual Studio在每次编译时成功构建NServiceBus,因为NServiceBus有自己的Nant构建过程,该过程使用ILMerge来创建整合的程序集等等
我们已经尝试使用Nant脚本构建NServ
我想使用网络负载平衡器来分发消息,但我知道当您尝试使用事务队列时,它会出现问题。现在我计划使用NSB分销商。分发服务器主机不会像我认为的那样成为瓶颈吗?我假设分发服务器无法实现扩展订阅服务器的目的,因为它将所有订阅服务器实例置于一台机器的瓶颈之下。想法?根据您的分销商的吞吐量,您可以使用更多线程来扩展它,或者一起添加另一个线程。由于分销商不知道其工作从何而来,您可以创建一个分销商/工人网格,并根据需要水平扩展
或者,您可以公开一个负载平衡的web服务入口点,并将工作推送到两个相同的分发服务器。我
我刚刚开始编写pub/sub,我这样做的方式是,我将有一个控制台应用程序,每x小时运行一次,并将处理过的列表作为队列消息(每条消息1项)。现在,在pub端,我想监听输入队列,一旦消息到达,我想发布
我知道我需要在配置文件中设置输入队列名称和轮询间隔,但是如何使pub实际上保持从输入队列进行轮询呢
谢谢。您只需创建一个实现IHandleMessages的类,并在初始化代码中使用
IBus bus = Configure.With()
...
新手需要帮助
我已经阅读了自定义配置文档。然而,我无法找出遗漏了什么,或者我是否走在正确的道路上。我正在尝试使用IWantCustomInitialization进行自定义配置,以动态创建消息队列(而不是App.Config),并将消息发送到消息队列
消息类如下所示:-
使用系统;
使用NServiceBus;
名称空间MyMessage
{
[可序列化]
公共类事件消息:ITaskInfo
{
公共字符串CustomerName{get;set;}
公共字符串PrimeKey{get;set;
NServiceBus 5.1、RavenDB持久性、AutoFac容器、log4net、发布时NuGet中的所有最新版本
EndpointConfig:
log4net.Config.XmlConfigurator.Configure();
LogManager.Use<Log4NetFactory>();
// Raven DataStore for Freight system
var freightDa
在以前的ASP.Net版本中,NServiceBus示例声明在global.asax中创建一个总线实例。然后在处理应用程序时(在global.asax中),将处理前面提到的总线实例。有点像下面的缩写版本:
IBus bus;
protected void Application_Start()
{
//Bunch of bus configuration and controller registration etc...
//Now Create the bus and as
我在NSB恢复Xml序列化程序时遇到问题,原因很明显,这在尝试反序列化消息时会导致错误。下面是日志的摘录,您可以看到一些源代码与Json相同,然后突然出现了XML
2018-06-05 08:51:36.924 INFO Stockly.Services.Messaging.Common.Extensions.MessageBodyWriter序列化消息正文:
2018-06-05 08:51:37.026 INFO Stockly.Services.Messaging.Common.Exten
我们的一些服务在整个系统中共享。例如,跟踪股票走势的工具。每当物品的库存水平发生变化时,就会引发一个事件
我们遇到的问题是,虽然有时另一个服务可能对所有库存更改事件感兴趣(例如进行一些聚合),但在大多数情况下,只有特定操作导致的库存更改才有兴趣
我们现在面临的问题是这个。假设有一个IArticleStockChangedEvent事件,其中包含物品编号、库存更改和请求更改的ProcessId。此事件针对物品库存的每次更改而引发
现在,一些外部服务有一个传奇故事要更改10篇文章,并命令股票服务这样
我们偶尔会看到错误“MSDTC在尝试与服务器上的系统[servername]建立安全连接时遇到错误(HR=0x8000171)”。我们正在使用NServiceBus
重启服务器后,一切正常,一切正常。然而,在一段不确定的时间之后,这个错误会随机发生,服务停止工作,一切都会停止
以前有人遇到过这种情况吗?这些机器的DTC上的安全设置是什么样子的?它们是否在同一个域中?当时系统日志中是否有任何内容?当时的安全日志中没有任何异常。有趣的是,NServiceBusHost.exe先死亡,然后30毫秒后,
我们注意到,具有长时间运行请求的消息处理程序存在一个问题,如果在分布式事务超时之前请求没有完成处理,那么在原始消息处理完成之前,或者在原始消息甚至抛出错误之前,在新线程上重新处理同一消息。消息最终到达错误队列
以下是我们如何再现这一问题的:
已将本地计算机配置更新为事务的默认超时1分钟:
<system.transactions>
<defaultSettings distributedTransactionManagerName="" timeout="
我正在尝试使用以下方法将生成后的NServiceBus处理程序设置为windows服务:
NServiceBus.Host.exe /install /serviceName:MyServer.dll
/displayName:"My Super Duper service"
/description:"My server installed by NService Magic"
已安装服务,但:
1.没有启动
2.正在阻止bin中的文件,所以我必须先将文件复制到其他文件夹吗
没有启动
是
这可能与:
?
我正在使用nservicebus 5.0.3和azurestorage队列
我得到一个:
Object reference not set to an instance of an object
当代码成功通过endpointconfig后启动时-下面是stacktrace
at NServiceBus.Unicast.Queuing.QueuesCreator.Install(String identity, Configure config)
at NSe
我们使用NserviceBus作为消息传递基础架构,RabbitMQ作为传输。
我正在尝试从5.*版本升级到NServiceBus 6.0。在5.0中,我们可以使用“Bus.defer()”延迟事件。但在6.0中,我们似乎只能延迟消息,而不能延迟事件
如果我使用下面的代码,并且消息是“事件”,我会得到一个错误,说应该发布事件
var sendOptions = new SendOptions();
sendOptions.DoNotDeliverBefore(Da
我们正在研究将NServiceBus用于ESB实现。我们有几个不使用Microsoft技术的外部合作伙伴。是否有一种方法可以使用NServiceBus路由到SOAP或REST服务,然后根据服务的响应接受已处理的消息 是的,您可以让服务公开WCF端点以接受命令、处理命令并返回错误/返回代码,然后在web服务响应中传递该代码
请查看NServiceBus支持站点上的文章,但请注意,从NServiceBus 4.0(目前处于beta版)开始,文章中提到的Webservice选项将被删除,正如Micro
我正在使用NSB 4.4.2
我想在我的传奇中有一些类似心跳的东西来显示处理统计数据。
当我请求超时时,它将发送到sagas输入队列。
如果在此超时消息之前有许多消息,则可能不会在特定时间触发iHandleTimeout。
是虫子吗?或者,如何使用单独的队列处理超时消息
感谢将超时发送到[endpointname]。超时是正确的-当超时准备好发送时,它将被发送到端点的传入队列,如果其中已经有许多其他消息,它将不得不等待轮到处理
您可能想考虑的另一件事是,端点可能在那时下降。
如果您想保证您的sa
我有一个处理程序,其任务是获取一个对象列表,并为该对象列表中的每个项目发布一个事件。这可能与下面的代码类似:
Handle(PublishListMessage message) {
foreach(var entry in message.List) {
Bus.Publish(entry);
}
}
我的用例是,我希望message.List.Count非常好,因此foreach循环可能需要一些时间
因此,假设我处理了100个条目对象中的50个,那么Bus.
我从文章中了解到如何在FullDuplex示例上使用NServiceBus分发进程,这让我想知道:
为了使用分发服务器,我需要以下队列:
MyClientInputQueue-单个客户端的输入队列
distributordatabus—分发服务器要向其发送消息的队列
distributorcontrolbus—分发服务器用于存储其状态的内容
server1messagebus—第一个服务器实例的输入队列
server2messagebus—第二个服务器实例的输入队列
这意味着,为了使用分发服
订阅服务器中是否需要事件处理程序?例如:
项目:
Crm.活动:
NewUserCreated:IMessage{}
Crm.Publisher:
控制台应用程序发布为Bus.PublishNewUserCreated
Crm.订户:
控制台应用程序订阅NewUserCreated事件
Crm.EventHandlers
NewUserCreatedHandler:IHandleMessages{…}
我是否需要Crm.Subscriber中的NewUserCreatedHandler,或者我是
使用Bus.Publish发布消息和使用Bus.Send发送消息之间的本质区别是什么?我希望了解它们之间的区别,以及何时我应该选择使用其中一个而不是另一个。总线发布:当您不知道消息要发送到哪里时使用(0到多个订阅者)。
Bus.Send:向特定处理程序(客户端到服务器)发送消息时。发布用于通知多个订阅者特定事件。发布终结点将具有订阅存储,以标识向何处发送消息。发送通常用于向端点发出命令。一个命令告诉端点做一些事情,并且不应该期望得到回复(尽管有时确实需要回复,并且NSB支持这一点)
您没有看到
我想补充我在App.config文件的UnicastBusConfig部分中订阅的端点,以便添加到另一个要订阅的队列中
为此,我添加了一个自定义配置源,如下所示
public class MyConfigSource : IConfigurationSource
{
public T GetConfiguration<T>() where T : class, new()
{
// the part you are overriding
我在一个端点部署了两个服务组件。
我想通过编写两个规格来测试它
我使用Specflow编写规范。但要弄清楚周围是否有样本
我看到了NServicebus.acceptance测试的东西,但这不是Specflow做的,它有很多代码要开始。这不是那么直截了当的
关于NServicebus的Specflow规范有什么想法吗?我在Specflow中安装了NServicebus.Testing项目,并使用它调用端点处理程序并执行测试。这很简单
在NServiceBus5版本中,我尝试了这个。
为了发送命令
昨天我做了一个生产模拟。结果哪里不好。两台服务器之间的连接正常。有时会有巨大的延迟,大约5-10分钟。我发了一条信息,二,三。。二十个,另一方不接收。然后砰的一声,所有的信息都在那里,回复被发送给发送者。另一种情况是,当我发送10条信息时,对方会立即收到并回复。但是发件人没有收到回复。5-10分钟后,回复就在这里
发生了什么事。请帮帮我
============================
编辑:
两台服务器都是windows XP sp3。这两台计算机都与openVPN连接。
NSB是最新
我正在尝试使用nservicebus创建审核日志服务。由于我需要在不重新编译的情况下创建应用程序,我发现()挂接OnTransportMessageReceived事件很好。此外,我还需要存储传入消息的消息体。
你能让我知道我怎样才能做到吗?
我尝试了以下步骤,现在创建一个处理IMessage的处理程序
public class AuditLogMessagehandler : IHandleMessages<IMessage>
{
public IBus B
我有一个静态类库,用于为ASP.NET MVC3应用程序提供服务
我正试图找到提供异步数据库调用的最佳方法。我有一个将数据发送到节点的应用程序,它将数据传递给节点知道的所有节点,以此类推
我正在使用NServiceBus2接受来自web客户端的节点消息。控件然后被发送回web应用程序,以允许控制器完成,从而将页面返回给用户
在后台,侦听器拾取该消息并启动节点数据库拖网。我创建了一个新的类库,它是一个工作正常的侦听器
我的问题是出版。我是否必须在每次调用方法时创建总线?我在哪里可以停放公共汽车?我
我正在尝试使用NserviceBus3(又名github master),但在运行一些示例时遇到了问题,即DataBus和AzureDataBus项目
对于DataBus接收器,它似乎希望配置MessageEndpointMapping,但据我所知,这配置了发送消息的位置,对于接收器/AsA_服务器来说不应该是必需的。添加此配置项似乎证实了这一点
这是错误日志
2011-08-17 14:14:16,183 [1] INFO NServiceBus.Hosting.Roles.RoleMana
我有一个单独的消息类库。实现IHandleMessages的每个处理程序。我还有一个单独的类库,它使用NServiceBus.Host作为消息处理服务。我知道我可以处理消息的排序,但是我可以说我希望主机处理哪些消息处理程序吗?目前看来,对IHandleMessage的任何引用都将由主机处理为什么不让每个NServiceBus主机都有一个处理程序呢?使其变得简单明了。您可以自定义初始化端点,并使用With(IEnumerable typesToScan)重载。您还需要包括NSB类型。我建议将程序集
NServiceBus到底是ESB还是轻量级ESB?还是更像WCF,具有持久/可靠的消息传递?在我看来,它更像是一个消息传递框架,而不是ESB
我刚刚开始研究不同的ESB产品,以及它们能做什么和不能做什么,我只是想要一些指针。您的问题有点没有定论。最好概述一下您需要ESB提供哪些功能,然后询问NSB是否支持这些功能
更新
我认为我应该更新我的答案以回应克里斯的答案
尽管很方便,但创建两个类别是错误的,也无益的,如Chris所说的Bus和Broker
服务总线在服务及其消费者之间提供了与传输和平台
如何在NServicebus中延迟处理saga消息24小时?我建议保留saga中的消息数据,请求24小时的超时,当您的saga收到超时调用时,进行处理。我建议保留saga中的消息数据,请求24小时的超时,当您的传奇接到超时呼叫时,请进行处理。感谢您的快速响应。我测试了你的答案,效果很好。NServicebus有一些非常好的功能。感谢您的快速响应。我测试了你的答案,效果很好。NServicebus有一些非常好的特性。
我有一个服务,在该服务中,我不希望在服务启动时从其输入队列中清除消息,也不希望它参与MSDTC事务。我正在将它的端点配置为运行AsA_服务器,但我看不到任何禁止启动MSDTC事务的方法。我正在使用NServiceBus.Host.exe
以前有人这样做过吗?AsA_服务器只是较长的Configure.With()块中一系列选项的快捷方式
删除AsA_服务器界面,然后确保以下内容在您的配置中:
.MsmqTransport()
.IsTransactional(false)
.Pu
如果我想在nservicebus中描述一个事件,我将创建一个从服务发布并由一个或多个订阅者使用的接口
让我们调用事件systemerror。每次到达代码中无法进一步执行的点时,都会发布此事件
因此,此事件最终可以由多个不同的逻辑服务发布。在只有一个服务发布此systemerror的情况下,让我们看看订阅者的配置文件
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="Syst
我下载了nservicebus 3示例项目,并注意到缺少依赖项,例如nservicebus.hosting.azure.dll和其他
我真的需要下载并构建主干来获取这些DLL吗?我还注意到,它们也无法通过nuget获得 这似乎是通过NSB 3.0.3版本解决的
在我的组织中,我们使用Microsoft TFS部署组件。NServiceBus组件由BuildPortal作为Windows服务部署。它通常创建自动MSI包并将其部署在目标服务器上。要部署MSI包,构建门户使用服务帐户(管理员/超级用户)。NServiceBushot将不会使用相同的服务帐户运行,它将使用系统帐户或不同的服务帐户,该帐户在服务器上具有受限权限,并且该帐户不属于管理员组
简而言之,Host/install命令使用与实际nservicebushot执行不同的帐户运行。在安装过程中,
我想在服务内部引发一个事件,然后在总线上发送两个命令(一个在服务内部,一个在外部)。我不认为执行这两个任务的代码应该在同一个事件处理程序中,但从我在网上看到的所有示例来看,命名约定似乎是[NameOfEvent]处理程序
如果我要创建两个事件处理程序(或者仅仅描述处理程序正在做什么,因为“FooHandler”并没有真正告诉您对象将做什么),那么当前关于命名约定的最佳实践的想法是什么
谢谢
Rob如果这些是根本不同的职责,您可以将它们设置为不同的端点,每个端点都订阅了事件,每个端点都有一个处理程
我目前正在开发一个遗留应用程序,它在机器之间进行大量同步通信。通信主要由Http POST完成,我想知道使用NServiceBus使通信异步是否会有好处
通过CQRS,我了解了NServiceBus,但没有详细了解它
与编写该应用程序的同事交谈时,他们认为,如果无法拨打电话,那么整个交易就会失败,我们应该坚持这种模式。大多数通信涉及多个用户在服务器上配置硬件,在这种情况下,我们可能不需要某种排队/异步框架
那么,使用异步技术有什么好处呢?NServiceBus是正确的框架吗?如果是在我们的情况下
我目前正在试用NServiceBus,它在我的系统上运行良好。现在,我想将其安装在我们的一个内部服务器上,以记录从头开始安装nservicebus需要做什么。我目前的策略是调用NServiceBus.Host/installInfrastructure,它报告说安装了RavenDB、Msmq和DTC,这似乎可行。但是,当我尝试(以管理员身份)运行示例应用程序时,出现了一个异常:
2012-12-07 15:13:43,599 [1] FATAL NServiceBus.Hosting.Gener
我们正在将NServiceBus从3.3升级到4.3
我们有两个不同版本的NServiceBus端点。
一个是发布者(仍然使用版本3.3),一个是订阅者(使用新的4.3版本)。
订阅服务器正在使用Bus.Subscribe方法进行订阅
我们看到的是,publisher正在其队列中接收订阅消息,其头中的NServiceBus.MessageIntent等于Subscribe。
处理这些订阅消息时,publisher(3.3版)将取消订阅。
下面是我们在日志中看到的内容
NServiceBus.Un
团队
我正在安装平台安装程序和选定的NServiceBus、ServiceControl、ServicePulse和ServiceInsight。在安装ServiceInsight时,我收到以下错误(请参阅下面的错误)
在此之前,我安装了beta版本,并卸载了它,甚至在启动平台安装程序之前重新启动了我的机器
我发现这个url表明以前使用测试版的用户也有类似的问题,但它没有为我们这些早期采用者找到解决方案
如果您能提供任何帮助,我们将不胜感激
Error executing powershell:
将Nservicebus从版本5升级到版本6后出现错误。
这发生在调用MessageEndpoint中的Customize方法之前。
我的MessageEndpoint继承自AsA_服务器的IConfigureHiseEndpoint
API限制:程序集的file:///PostSharp.dll'已从其他位置加载。无法从同一appdomain中的新位置加载它。您的配置代码中是否包含PostSharp.dll?如果是,请注意NServiceBus版本6中有。不包括程序集,而是使用“排除列表”方法
webjob是否有可能侦听队列并基于消息id或会话id或其他内容使用所有相关消息,在每次新消息之后都有一个小的延迟
例如,三个用户编辑和更新三个计划。两个用于同一员工。每个计划生成一个工资单更新事件:1名员工100,2017年第1周,2名员工200,2017年第1周,3名员工100,2017年第1周
我希望webjob侦听队列并执行两个并发webjob,每个员工一个,周,年标识符
我不知道批处理或会话是否可以实现这一点。我也不知道这是否是一种选择
注意:webjob任务是幂等的
webjob是否
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 21 页