问题标签 [rhino-esb]
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.
msmq - nServiceBus vs Mass Transit vs Rhino Service Bus vs 其他?
只是做一些快速的峰值可能使用消息系统来处理在一个很好的解耦的工作流系统中的文件。
人们发现使用上述每个框架的优点和缺点是什么?与带有 WCF 绑定和/或非 MSMQ 解决方案的手动 MSMQ 系统相比,使用这些系统有什么优势?
c# - 为什么 Rhino.ServiceBus 没有自动创建我所有的队列?
我已经以与有关它的博客文章非常相似的方式进行设置,但是在启动其中一个队列时出现错误。
我的msmq://localhost/colin_console_queue
程序不会自动创建。
我很确定我只是没有做正确的事情,但我不知道我遗漏了什么。
我确实发现了一个“DisableAutoQueueCreation”属性,我尝试在各种配置元素上将其设置为 false,我什至发现它可以作为属性使用,RhinoServiceBusFacility
所以我也尝试在那里设置它。不幸的是,这些似乎都不起作用。
如果我将两个 url 更改为指向同一个 Queue 应用程序基本上可以工作,但我很确定这不是我应该做的。我查看了 Starbucks 示例应用程序以了解它的作用,但它似乎使用代码中的硬编码路径进行了大量设置。
这是我用来弄清楚如何使用队列的测试程序。
这是我得到的错误,
c# - Rhino ServiceBus:具有多条消息的 Sagas
我有一个可以处理多个消息的传奇,如下所示:
但似乎只有 Orchestrates<CancelOrder> 被选中。所以我想(我没有找到这条线,但我有一个强烈的印象是这样),只有第一个 Orchestrates 被注册。
可能这是设计使然。从我想象的传奇故事来看,它接收许多不同的信息似乎是合乎逻辑的,但我可能错了。我的整个假设也可能错了:)
我该怎么处理这个?Sagas 是否应该只处理一个(在我的情况下) ChangeStateMessage<State> 还是应该手动连接其他 ConsumerOfs/Orchestrate?
esb - Rhino.Esb“找不到任何消息所有者”
我有一些服务,我希望能够从中发布和订阅消息。
我有一个后端总线控制台应用程序,它具有以下配置:
并使用:
然后我有一个 WCF 服务,它具有以下 esb 配置:
以及 global.asax 中的以下内容:
然后是具有以下配置的第二个服务:
但是每当我尝试使用这个向总线发送消息时:
我收到以下错误:
找不到 SonaTribe.Esb.Messages.Account.EventAttendanceToggleMessage 的消息所有者
有人知道我在做什么错吗?
wcf - MSMQ:2台服务器是否需要在同一个域中才能访问私有队列?
正如标题所说 - 我有 3 台服务器:
server-1 [wcf 服务] server-2 [wcf 服务] server-3 [esb using rhino.esb]
所以 - 服务器 1 将消息发布到服务器 3 esb 服务器 2 通过服务器 3 esb 订阅来自服务器 1 的消息
他们都需要在同一个域中吗?
c# - 带有“存储转发”功能的 Rhino 服务总线
是否可以在“存储和转发”配置中使用 Rhino 服务总线和 Rhino 队列?
例如,假设我有两个节点,A
并且B
. 如果节点B
已关闭,我不希望节点A
尝试发送的任何消息B
丢失 - 因此A
应在尝试将出站消息发送到远程队列之前将出站消息缓存在持久的本地队列中。
将 Rhino Service Bus 与 Rhino Queues 一起使用时这可能吗?
rhino - 为什么要向所有 Sagas 发送消息?
我正在使用 Rhino 服务总线,我有两个 saga,SaveCustomerSaga 和 ProcessReceiptSaga,这两个操作都将 UpdateInvoicesCommand 发送到标准消息使用者。在更新发票之前,两个传奇都没有完成。两个 sagas 都实现了 Orchestrates<'InvoicesUpdated> 来完成。相同的 CorrelationId 用于所有消息。
然而,当 UpdateInvoicesCommand 的消费者回复消息 InvoicesUpdated 时,它被分派给两个 Sagas!事件虽然其中一个尚未启动并且 CorrelationId 属于另一个已经启动的 Saga。
它不应该只将它发送到具有匹配 CorrelationId 的适当 Saga 吗?是否有解决方法或拦截我可以执行此行为?
(使用 v2.3.0,但是快速查看提交历史似乎不是与此相关的新更改。)
multithreading - 从 Rhino 服务总线使用者访问 WinForm UI
我有一个 WinForm 屏幕,它也是一个消息使用者(使用 Rhino ESB)。如果我在收到消息时尝试更新屏幕上的任何内容,则不会发生任何事情。调用 Invoke 给我一个错误,即未创建句柄。虽然表单肯定是创建的,但我在表单上的按钮单击时发出一条消息,后台进程会发回一条消息。我想通过这个返回消息更新 UI。
这不是一个重复的问题,建议的解决方案都不起作用。
我相信这里的区别可能是因为我使用的是 Rhino 服务总线。Rhino 可能正在构建我的表单的一个单独实例,而不是我正在使用的那个。我认为我可能需要做的是让 Rhino 使用我的表单实例作为消费者,方法是将我的实例传递到 Rhino 正在使用的 IoC 容器中。另一种选择是将消费者移到它自己的类中并将我的表单注入消费者,并在我的表单上放置一个公共方法供消费者使用。这可能适用于我的应用程序,因为这是主要形式,除非应用程序关闭,否则永远不会被释放。这在可能被多次实例化的另一种形式上会成为问题。也许我可以让我的表单“观察”另一个由单独的 Consumer 类更新的静态对象。
这会引发错误:
messaging - Rhino ESB 向自己发布消息
使用 Rhino 服务总线。我有一个处理处理的后端应用程序,还有另一个将消息发布到后端的应用程序(客户端 UI)。我在后端有一个 Saga,在此期间我希望 saga 向自己发布消息,将处理分解为多个可以在自己的线程上运行的较小任务。问题是,如果通过 Orchestrates 接口订阅消息,它们总是会被丢弃。我可以使用 ConsumerOf 订阅不同的类,并且消费者会收到消息。
主机配置:
引导:
servicebus - Rhino ESB 发布/订阅后端
我有 2 个应用程序,客户端使用的桌面应用程序,进行后端处理的 Win 服务。我希望能够使用 Rhino Service Bus 通过消息触发后端处理。此消息可能来自客户端应用程序,也可能来自 win 服务,我并不关心是谁触发的。所以我需要pub sub。问题是我可以从我的控制台应用程序中很好地触发它,当我尝试从我的服务中触发时,我收到一个错误消息没有订阅者。我的配置有什么问题?
控制台 app.config
赢服务app.config
两个应用程序中发送消息的代码是相同的: