[英]Sending message directly to BizTalk or via MSMQ?
这是我第一次使用BizTalk进行跨计算机,异步,可靠的通信。
我想知道是否有一种方法可以将消息从一台计算机直接发送到BizTalk队列,或者我必须使用本地MSMQ,后者又将消息发送到BizTalk?
在C#中,是否存在用于将消息发送到BizTalk队列的绑定?
对于MSMQ,我知道有NetMsmqBinding。
干杯
更新:
由于我引入了一些困惑,因此我将尝试解释一下,如果我做错了,请纠正我。
据我所知,ESB实现了可用于可靠的异步通信(简称消息传递)的队列或消息通道的概念。 现在,我很难将BizTalk纳入这个概念。 ESB概念的解释有数十种,关于BizTalk是ESB的观点也很多,例如Sonic或TIBCO。
现在,据我所知,例如在实现JMS API的TIBCO中,本地客户端计算机(例如MSMQ)上没有队列或排队服务,但它们在TIBCO ESB上存在并已配置,并且在客户端应用程序中,我使用JMS API将消息发送到这些队列。
因此,当我想通过BizTalk与其他计算机上的应用程序进行通信并且要使用消息传递时,我将在本地计算机上使用MSMQ,MSMQ会将这些消息传输到BizTalk和其他下游应用程序吗?
另外,我应该在哪里配置本地MSMQ和BizTalk之间的通信? 我应该配置BizTalk来侦听给定的MSMQ以获得新消息,还是应该对MSMQ本身进行一些配置?
BizTalk通过称为适配器的伪像与外界进行通信,这些伪像可以通过各种消息传递协议提供对外界可见的终结点。
有一个MSMQ适配器,它似乎可以从本地计算机或远程计算机上读取并发布到队列。 我从来没有使用过它,所以我是从阅读此适配器上的文档并逐步了解的角度出发的。 我发现BizTalk文档特别难以浏览,特别是因为许多microsoft链接现在都无处可去-找到我提到的这些页面花了一些时间。 如果您发现有什么不明显的事情发生,请告诉我,因为我确信有一些我从未找到过的有用资源。
要配置BizTalk以侦听队列:
那应该就是它的全部了。 然后,发布到该队列将导致在该端口上接收到一条消息,该消息立即将其持久化到消息框数据库中。 您必须使用管道和/或地图进行一些处理,以便对消息进行任何有用的处理。
但是,您绝不仅限于MSMQ。 提供了一个非常全面的列表 ,并且BizTalk并不限制您使用任何特定的消息传递协议。 您还可以使用所需的任何行为来实现自定义适配器。 为了更有效地回答您的问题,知道您的真正要求是有帮助的-例如,客户端应用程序的用例是什么?
BizTalk脱离端口概念进行操作-接收和发送。 这些端口利用许多不同的技术来读取和写入消息,但是没有一个是与其他BizTalk Server的直接通信。 您需要利用MSMQ甚至基本的Web服务之类的东西-由您自己决定-但您之间需要某种通信协议。
“而且,我应该在哪里配置本地MSMQ和BizTalk之间的通信?我应该配置BizTalk以侦听给定的MSMQ以获得新消息,还是在MSMQ本身上进行一些配置?”
答:您需要配置BizTalk以按定义的时间间隔轮询相应的队列(可以在BizTalk中配置)。 在MSMQ中,您需要授予对用户帐户的访问权限,该用户帐户将在轮询队列时使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.