问题标签 [nservicebus-distributor]
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.
nservicebus - NServiceBus 4.03 删除工作节点
我们有蓝/绿部署流程,我们想要移除几个工人。如何删除存储在存储 q 中的工作人员消息?我们已经解决了清空存储 q 的问题。
NServiceBus 是否提供了开箱即用的方法?
nservicebus - ServiceControl 在与分发服务器的部署中
在我们与经销商一起部署我们的解决方案之前,我们对 ServiceControl 没有任何问题。现在该服务可以很好地处理旧数据,但它不会接收新数据。
我们是否必须在主节点部分之外配置一些东西才能使 ServiceControl 正常工作?
提前致谢。
nservicebus - 无法在主节点中具有生产配置文件的分发器中启用超时管理器
将我的服务部署为具有生产配置文件的主服务器后,我看不到超时管理器在初始化中启用。我已经尝试了一切都没有成功。
我安装服务的方式是:
NServiceBus.Host.exe /install /serviceName:BusinessServices /displayName:BusinessServices /description:BusinessServices /userName:machinename\Administrator /password:pass
NServiceBus.Master nservicebus.production
端点配置是:
公共类 EndpointConfig : IConfigureThisEndpoint, AsA_Server,AsA_Publisher { }
配置是:
RavenDB 安装在该机器上,并且适用于 saga,无论如何在初始化中它说:
2014-05-19 17:02:55,428 [1] INFO NServiceBus.Configure [(null)] <(null)> - NServiceBus.IWantToRunBeforeConfiguration 的调用在 0.14 秒内完成 2014-05-19 17:02:55,785 [1] INFO NServiceBus.Configure [(null)] <(null)> - NServiceBus.Config.INeedInitialization 的调用在 0.00 秒内完成 2014-05-19 17:02:56,296 [1] INFO NServiceBus.Licensing.LicenseManager [(null)] <(null)> - 于 07/03/2014 00:00:00 2014-05-19 17:02:56,576 [1] INFO NServiceBus.Configure [(null)] <(null)> - 调用 NServiceBus。 INeedInitialization 在 0.79 秒内完成 2014-05-19 17:02:56,724 [1] INFO NServiceBus.Distributor.T5.BusinessServices.High [(null)] <(null)> - 端点配置为托管分发器,应用输入队列重新路由到 T5.BusinessServices.High。worker@WIN-74CD8F6BJ66 2014-05-19 17:02:57,118 [1] INFO NServiceBus.Configure [(null)] <(null)> - NServiceBus.IWantToRunBeforeConfigurationIsFinalized 的调用在 0.54 秒内完成 2014-05-19 17:02 :57,356 [1] INFO NServiceBus.Features.Sagas [(null)] <(null)> - 在扫描类型中找到 Sagas,启用 saga 持久性 2014-05-19 17:02:57,371 [1] INFO NServiceBus.Features.FeatureInitializer [(null)] <(null)> - 特征:审计 [4.6.1] - 启用自动订阅 [4.6.1] - 启用 BinarySerialization [4.6.1] - 由类别控制序列化程序 BsonSerialization [4.6.1] - 由类别控制序列化器 JsonSerialization [4.6.1] - 由序列化器类别控制 XmlSerialization [4.6.1] - 由序列化器类别控制 MsmqTransport [4.6.1] - 启用网关 [4.6.1] - 启用 TimeoutManager [4.6。1] - 禁用 Sagas [4.6.1] - 启用 SecondLevelRetries [4.6.1] - 启用 StorageDrivenPublisher [4.6.1] - 启用 MessageDrivenSubscriptions [4.6.1] - 启用 Heartbeats [1.0.0] - 启用 SagaAudit [1.0.0] - 启用
我还需要做些什么吗?
提前致谢
nservicebus - NServicebus+RabbitMQ 和分发器
由于本地输入队列的硬性要求,NServiceBus 分配器/工作器模式对 MSMQ 非常有意义。
但 RabbitMQ 并非如此,我试图了解 NServiceBus 分发器如何以及何时与 RabbitMQ 相关。使用 RabbitMQ,多个工作人员可以从同一个远程队列中读取。
实际场景类似于使用 AWS 自动扩展组来扩展指向高可用 RabbitMQ 集群的工作人员。现在完全避免分发器使设置的构建、测试和配置变得更加简单。
想法?
nservicebus - NServiceBus:传奇超时后存储队列中的消息数量增加
首先有关设置的一些信息:
- 我们正在运行 NServiceBus v4.6.3
- 分发器在具有集群队列的集群机器上运行。
- TimeoutManager 在工作人员上禁用,在分发服务器上启用。
我们正在经历什么
- 当处理 Saga-timeout 时,存储队列中的消息数会增加 1。
- 当消息被延迟时,存储队列中的消息数量会增加一。
我们知道什么
超时消息直接传送到特定的本地队列(在请求超时的服务器上),而不是集群队列。这绕过了常规路径,该路径涉及从存储队列中删除消息并将目标队列传递到工作线程。工作人员不知道这一点,并在处理超时消息后报告它已准备好处理新消息。
这种行为的原因是存储在 TimeoutData 中的目标队列被设置为工作器上的本地队列,而不是集群队列。这是一个例子:
我不确定我们遇到的是 NServiceBus 中的错误或配置错误。有人知道吗?
nservicebus - 是否可以将失败的消息返回到分发者源队列而不是工作人员?
是否可以将工作人员(在分布式场景中)配置为将失败(未处理的消息)返回到分销商源队列,以便另一个!工人会尝试处理这个消息吗?
msmq - NServiceBus 分发器工作人员创建一个名为 PRIVATE$\order_queue$ 的队列
我创建了一个 NServiceBus Distributor 和 Worker,在不同的机器上运行。当我运行工作程序时,它成功地向分配器发送了一条消息(我可以看到它通过存储队列处理)但是由于某种原因在分配器上创建了一个输出队列,称为
'DIRECT=TCP:xx.xx.xx.xx\PRIVATE$\order_queue$ 当队列应该被称为 'DIRECT=OS:WORKERDNSNAME\private$\myqueue' 时。
有谁知道为什么要创建 order_queue$ ?
nservicebus - NServiceBus:无法登记事务(未能将消息发送到审计队列)
我有一个端点,它与其他三个工作端点一起作为分发者工作。接收到的消息的处理端点打开一个事务并尝试将一些 xml 数据导入 sql db。如果在此过程中抛出一些异常,则捕获异常,回滚事务并将 xml 数据写入错误文件夹。简化后,它看起来像这样:
首先,事务回滚后不会发生重试。但是当再次发送消息时,所有工作人员端点(仅工作人员)都会收到异常(无法登记事务,未能将消息发送到控制队列->请参阅下面的堆栈跟踪)并且 nservicebus 确实重试了消息(这导致情况下,该文件在错误文件夹中出现多次)看起来分布式事务处于无效状态。我可以只交出异常(重新抛出异常),所以 nservicebus 为我处理回滚,但在这种情况下,文件也会多次写入错误文件夹(由于重试机制)
- NServicebus 版本:4.6.0.0
- 排队:MSMQ
nservicebus - NServiceBus 工作人员注销不起作用
我正在尝试按照此处所述取消注册工作程序节点,但该过程似乎无法正常工作。如果分发器在运行注销脚本时有任何与断开连接的工作人员相关的控制消息,则下次消息进入时,它将消耗这些消息(有效地向节点发送更多工作)。只有之后分发器才会拒绝来自节点的控制消息。
有没有人让它正常工作=工人在注销后不应该收到任何新消息?
nservicebus - 在网关 NserviceBus 中添加动态地址
我正在向分布式系统发送消息。因此我更喜欢使用网关。问题是我正在动态获取站点密钥、地址和频道类型信息。Nservicebus 检查 app.config 中的站点密钥和相应地址。但是我的 app.config 中没有任何内容。我想从代码中动态修改 app.config。这是正确的方法吗?或者有任何方法可以做到这一点。
下面是代码。
应用程序配置
代码