有2个需要彼此通信的应用程序。它们都在同一台PC上运行。
主应用程序(C#)
Helper Application(C#)->从主应用程序启动
Helper应用程序将修改主应用程序使用/包含的某些数据。助手应用程序可以是微服务吗? (不熟悉微服务,但是我在网上查看时已经看到了这一点)
我找到了一个有用的教程,并且能够创建WCF双工绑定。 现在,主应用程序和助手应用程序可以通信。 我只是想知道这是否是一个好的解决方案(或者微服务更好)?
答案 0 :(得分:1)
助手应用程序可以是微服务吗? (不熟悉微服务...
好的。 “微服务” 只是描述基于组件的分布式网络计算的最新术语。它可以追溯到分布式COM (DCOM)和 Corba 的时代。 COM + ,最后是面向服务的体系结构(SOA)。 WCF使用SOA作为最佳实践。实际上,SOA和微服务之间的唯一真正区别是后者倾向于采用HTTP-REST-JSON作为传输/ API /有效负载,而SOA生成是传输/有效负载中立的,但通常使用SOAP。
我找到了一个有用的教程,并且能够创建WCF双工绑定。现在,主应用程序和助手应用程序可以通信。我只是想知道这是否是一个好的解决方案(或者微服务更好)?
从技术上讲,您已经在使用微服务/ SOA。
我只是想知道这是否是一个好的解决方案
否。同一台机器上的SOA /微服务的问题在于它们非常健谈。高昂的开销;并且其消息有效负载非常冗长。 SOAP和REST都默认使用文本消息(分别是XML和JSON)(相比二进制文件,这要大得多)。
如果客户端和服务器都在同一台计算机上,则最好只使用直接的命名管道,并避免使用WCF / REST。命名管道下的通信是二进制的,因此紧凑;命名管道以Kernal模式运行,这意味着它非常快速,并且作为本地通信的一项额外好处,绕过 网络层(相对于说TCP,甚至可以用于LOCALHOST。