Azure 服务总线与服务远程处理、HTTP 和 WCF

Posted

技术标签:

【中文标题】Azure 服务总线与服务远程处理、HTTP 和 WCF【英文标题】:Azure ServiceBus vs ServiceRemoting, HTTP and WCF 【发布时间】:2019-03-06 18:46:45 【问题描述】:

documentation of Service Fabric推荐服务远程处理,ICommunicationClient或WcfCommunicationClient来实现微服务之间的通信。

我一直用于服务间通信的 ServiceBus 甚至没有被提及。为什么?

【问题讨论】:

【参考方案1】:

我认为您误解了文档。它不推荐任何协议或服务(页面上甚至没有这个词)。它所做的是列出内置的通信选项以及何时使用它们的适当情况。

没有什么可以阻止您使用服务总线进行服务间通信。事实上,如果你在周围搜索一下,你会发现一些类似this one的项目

插入任何所需服务或协议的能力是 SF 的一大优点,但它们将实现留给您。

【讨论】:

【参考方案2】:

有很多方法可以进行服务到服务的通信,如果他们必须记录所有这些,他们将花费更多的时间来编写可能的方法而不是进行实际的通信。

他们可能会选择与平台关系最密切的那个,但他们可以写任何可能的东西,这只是一个偏好问题。

我可以从很多中列举几个,只是为了有个想法:

http 远程处理 WCF 服务总线 活动中心 AMQP MQTT gRPC + protobuf TCP UDP 管道

还有更多,想象一下,如果他们必须记录所有这些。

通信足够灵活,可以让您使用任何通信机制来实现。

关于你提到的那些, 我总是选择 HTTP,因为它与平台无关并在大多数平台上广泛实施,不管是 .Net、Java、NodeJs、Windows 还是 Linux,它们都使用相同的语言,其他的对 .Net 和 Windows 非常严格平台并强制所有其他解决方案也被收紧或适应。还有一些是同步的,而另一些是异步的,比如服务总线。

然后,当性能成为问题时,我会评估其他选项。

【讨论】:

以上是关于Azure 服务总线与服务远程处理、HTTP 和 WCF的主要内容,如果未能解决你的问题,请参考以下文章

Azure 服务总线有序处理消息

Azure Functions - 根据事件类型阻止处理 Azure 服务总线消息

如何编写将部分传入消息传递给服务总线队列的 Azure HTTP 触发器函数?

是否可以创建 WCF 服务端点来处理来自 Azure 服务总线的死信?

Azure 服务总线通知中心是不是与 websockets 和 javascript 一起使用?

顺序处理算法/模式 - Azure 服务总线队列