将 NServiceBus 与 AIX 大型机连接
我有一个后端系统,可以将事件发送到我的系统。重要的是,这些事件不会丢失(我在一家医疗保健公司工作,丢失的信息可能会影响患者的护理)。
我想让这个系统将其数据放入 NServiceBus 中,以便可以将其发布给需要它的订阅者。但是,我删除这些消息的服务器是一台 AIX 计算机,因此它无法运行 .NET 代码。
该系统可以通过许多标准协议和通信类型(TCP、基于 WSDL 的服务、调用数据库存储过程等)发送消息。
我考虑过的一种选择是设置 AIX 大型机将调用的 WCF 服务。然后我可以让我的 WCF 服务调用 NServiceBus。
但此后端服务每分钟发送的事件有时可能相当高(每分钟大约 500 条消息)。我担心WCF达不到这一点,而NService总线说它每秒可以处理1000条消息。我还担心停机时数据丢失。 NserviceBus 声称不会丢失任何数据。
我错了吗? WCF 会好吗?或者我在链条中制造了一个薄弱环节?
有没有办法使用已建立的协议将项目直接添加到 NServiceBus 队列?
或者我应该编写自己的 .NET 应用程序来允许 NServiceBus 使用 TCP 连接?
注意:由于这些消息很关键,因此必须确认该消息,否则服务器将继续发送该消息。
I have a back end system that drops events to my system. It is critical that these events don't get lost (I work for a health care company and lost info can impact a patient's care).
I would like to make this system drop it's data into NServiceBus so that it can be published to subscribers that need it. However, my server that is dropping these messages is an AIX machine, so it can't run .NET Code.
This system can send the messages via a lot of standard protocol and communication types (TCP, WSDL Based Services, Call A Database Sproc, etc).
One option I have considered is to setup a WCF service that the AIX mainframe will call. I can then have my WCF service make the call to NServiceBus.
But the events sent per minute of this back end service can at times be fairly high (about 500 messages per minute). I am worried that WCF is not up to this, while NService bus says it can handle 1000 messages per second. Am also worried about data loss in the event of a downtime. NserviceBus claims it is not going to loose any data.
Am I wrong? Is WCF going to be just fine? Or am I making a weak link in the chain?
Is there a way I can use an established protocol to add items directly to an NServiceBus Queue?
Or should I just write my own .NET app that will allow NServiceBus to use a TCP connection?
Note: Because these messages are critical, the message must be acknowledged or the server will keep sending it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我会看一下开箱即用的 WCF 集成。 WCF 服务与 NSB 包含在同一主机中。集成只是将消息推送到队列中,因此我认为您不会遇到吞吐量问题。看到这是关键数据,我建议对服务进行集群。另一种选择是在不同的计算机上安装 2 个或更多服务实例,并在两台计算机之间对 HTTP 调用进行负载平衡。本质上,您将拥有 1 个逻辑发布者和 2 个物理组件来进行发布。
I would take a look at the WCF integration that comes right out of the box. The WCF service is contained within the same host as NSB. The integration does nothing more than just push the message onto the queue, so I don't think you'll have a throughput issue. Seeing that this is critical data, I would suggest clustering the service. The other option would be to install 2 or more instances of the service on different machines and load balance the HTTP calls across both. In essence you would have 1 logical Publisher with 2 physical components doing the publishing.