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 Functions - 根据事件类型阻止处理 Azure 服务总线消息
如何编写将部分传入消息传递给服务总线队列的 Azure HTTP 触发器函数?
是否可以创建 WCF 服务端点来处理来自 Azure 服务总线的死信?