我有两种不同的服务架构应用程序。两者都是无状态的web api模型。我确实有一个情况,从应用程序1中的服务1,我需要调用服务2,它是应用程序2的一部分。我在同一个集群中部署这两个应用程序。有人可以在这里建议最好的做法。什么是最好的沟通方式。请提供一些样本。
答案 0 :(得分:1)
Fabric Transport (aka Service Remoting)是sdk内置通信模型。与通过HTTP或WCF进行的通信相比,它可以做得更多,特别是在通信的客户端。
当谈到与Service Fabric服务(或者实际上是任何分布式系统服务)进行通信时,您的通信应该考虑到连接可能无法在初始尝试时建立,或者在通信中断并且您真的不应该构建您的解决方案,期望始终完美地工作。其原因在于Service Fabric在任何时候都可以决定将主要节点从节点移动到另一个节点,节点本身可能会关闭,服务可能会崩溃。 Service Fabric的优点在于,在维护服务和节点的过程中,它为您带来了很多繁重的工作。
因此,就通信而言,这意味着客户需要能够做三件事(因为它真正在分布式环境中工作);
Fabric Transport does all this。
对于Fabric Transport来说,这是很好的部分,你可以获得所有开箱即用的功能,而且大部分时间你也不需要更改默认设置。不好的一点是它只适用于群集中的通信,即您无法使用Fabric Transport从外部与群集中运行的服务进行通信。为此,您需要HTTP或WCF。
HTTP(s)和WCF(通过HTTP(s))通信允许您构建自己的客户端并自己处理通信。有关如何解决,连接和重试HTTP客户端的示例,this one for instance
答案 1 :(得分:0)
根据Microsoft,有三种内置通讯选项。由您来决定哪一个最适合您。我个人使用service remoting,这很容易快速设置。它还允许您在客户服务中进行异常处理。