C# 运行.NET服务的两个docker节点,相互通信

C# 运行.NET服务的两个docker节点,相互通信,c#,.net,docker,azure-container-service,C#,.net,Docker,Azure Container Service,我的问题是关于.NET世界中关于容器的应用程序体系结构 我参加了一个本地的.NET开发会议,在会上,这个家伙展示了如何重新设计我们的应用程序,以便将所有组件装入单独的容器中。我喜欢这个想法,回到家后才意识到沟通的作用是如何发挥出来的 这是他潦草写的东西。每个气泡代表一个容器。 现在是百万美元的问题。我的应用程序是ASP.NET MVC Web应用程序,业务逻辑和数据访问层是应用程序引用的DLL。然后在每个依赖层上创建一个休息端点;我不认为我的DLL可以在单独的容器中运行并跨容器行引用。NET是

我的问题是关于.NET世界中关于容器的应用程序体系结构

我参加了一个本地的.NET开发会议,在会上,这个家伙展示了如何重新设计我们的应用程序,以便将所有组件装入单独的容器中。我喜欢这个想法,回到家后才意识到沟通的作用是如何发挥出来的

这是他潦草写的东西。每个气泡代表一个容器。


现在是百万美元的问题。我的应用程序是ASP.NET MVC Web应用程序,业务逻辑和数据访问层是应用程序引用的DLL。然后在每个依赖层上创建一个休息端点;我不认为我的DLL可以在单独的容器中运行并跨容器行引用。NET是否提供了一种方法/框架来轻松完成此任务?

您是对的,您必须构建一个小型REST Api或RPC来在组件之间进行通信

但我认为你会用容器来分散。 将应用程序视为前端层,这样就只有HTMl/JS/CSS了,业务层是一个标准的CRUDRESTAPI,最后一个容器就是数据库

有了MVC,你只需要一个App+BL容器和数据库容器。 如果您想在自己的容器中的几个微服务中分解您的业务逻辑,则可以使用更多


然而,很少有设置需要容器,您应该做一些研究,看看您的解决方案是否需要使用容器。容器最适合用于分离应用程序,以便多个应用程序可以共享一台服务器,而不会在系统级别上发生干扰。

微服务通常不会像图中所示那样设置。相反,每个服务通常都拥有执行其离散角色所需的一切。仅仅因为您看到了他们推广此体系结构的演示文稿,它并不适合您的应用程序。我认为您可以在节点之间使用某种RPC,在节点之间使用路由器,并将所有服务连接到它。请看一看,您将不得不设置几个微服务并以某种方式配置它们之间的交互,所有这些在本例中基本上都是毫无理由的。@Evk那么,微服务的一些好的候选用例是什么呢?很难在注释中描述。您可以阅读此架构模式的各种描述,例如: