Nservicebus 来自端点的Web服务集成
我需要将第三方Web服务集成到基于消息传递的体系结构中。我们正在使用NServiceBus 根据NServiceBus上的PluralSight课程,建议在集成WebService时,为该集成创建特定的WebService网关端点 第三方Web服务具有用于下拉通知和确认这些通知的API方法。此Web服务的客户端需要定期(例如每15分钟)提取通知,并在正确处理这些通知时确认每个通知 建议的流量如下:Nservicebus 来自端点的Web服务集成,nservicebus,Nservicebus,我需要将第三方Web服务集成到基于消息传递的体系结构中。我们正在使用NServiceBus 根据NServiceBus上的PluralSight课程,建议在集成WebService时,为该集成创建特定的WebService网关端点 第三方Web服务具有用于下拉通知和确认这些通知的API方法。此Web服务的客户端需要定期(例如每15分钟)提取通知,并在正确处理这些通知时确认每个通知 建议的流量如下: NServiceBus WebService网关端点将根据通知的类型提取通知并向另一个NServi
CreateCustomer
命令将发布CustomerCreated
事件UpdateCustomer
命令将发布CustomerUpdated
事件
您可以让一个处理程序通用地处理这两个事件,并提交一个acknolwedgementAckHandler:IHandle,IHandle
但要回顾一下您的实际问题,我不认为这是一种代码气味。
问题第二部分 (下次我建议一起创建一个单独的问题) 至于在Azure中托管,我可能倾向于在WebJob中托管它们。WebApp只是一个托管平台,可以托管一个网站和一系列webjob。它们有点便宜,控制少,但非常容易扩展 请记住,在需要水平扩展之前,可以通过调整每个主机的并发设置来垂直扩展,以找到它可以处理的线程数量(NSB<5表示最多20个线程;NSB>=6表示100个线程) 你可以一开始就把它们放在一个主机上。问题第1部分 我不认为这是一种代码气味。我自己也做过几次。这是确保与依赖项的交互成功发生的可靠方法 我会依靠事件驱动的确认。这将允许您的软件中有更多的可扩展点。例如:
CreateCustomer
命令将发布CustomerCreated
事件UpdateCustomer
命令将发布CustomerUpdated
事件
您可以让一个处理程序通用地处理这两个事件,并提交一个acknolwedgementAckHandler:IHandle,IHandle
但要回顾一下您的实际问题,我不认为这是一种代码气味。
问题第二部分 (下次我建议一起创建一个单独的问题) 至于在Azure中托管,我可能倾向于在WebJob中托管它们。WebApp只是一个托管平台,可以托管一个网站和一系列webjob。它们有点便宜,控制少,但非常容易扩展 请记住,在需要水平扩展之前,可以通过调整每个主机的并发设置来垂直扩展,以找到它可以处理的线程数量(NSB<5表示最多20个线程;NSB>=6表示100个线程) 你可以一开始就把它们都放在一个主机上。至于第二季度,请看一看,至于第二季度,请看和