C# 在两个微服务之间共享单个数据库连接

C# 在两个微服务之间共享单个数据库连接,c#,.net,sql-server,database,microservices,C#,.net,Sql Server,Database,Microservices,我有两个使用.net core编写的微服务,它们共享一个数据库(sql server)。我想统一两个微服务之间的数据库连接。这可以做到吗?.net和数据库服务器实例管理实际(物理)数据库连接。每次应用程序请求打开与数据库的连接时;它由连接池提供。并且,当应用程序中的连接关闭时,它将返回到池中 您可以通过一些进程间通信方法和本机编码共享连接对象,但这不是一种好的模式。 如果您需要在两个服务中保持事务的连接,最好使用分布式事务。您可以为两个微服务使用相同的连接字符串。在这种情况下,两个微服务将连接到

我有两个使用.net core编写的微服务,它们共享一个数据库(sql server)。我想统一两个微服务之间的数据库连接。这可以做到吗?

.net和数据库服务器实例管理实际(物理)数据库连接。每次应用程序请求打开与数据库的连接时;它由连接池提供。并且,当应用程序中的连接关闭时,它将返回到池中
您可以通过一些进程间通信方法和本机编码共享连接对象,但这不是一种好的模式。

如果您需要在两个服务中保持事务的连接,最好使用分布式事务。

您可以为两个微服务使用相同的连接字符串。在这种情况下,两个微服务将连接到同一个数据库实例。为什么要连接?数据库设计用于处理大量连接。你甚至不想在你的一个微服务上共享一个连接。但要回答您的问题,是的,可以创建第三个连接到数据库的微服务,并将查询从两个微服务传递到第三个。这就是我希望两个微服务使用负责连接到数据库的同一对象的原因。因此,我想您可以创建一个附加层(服务)在这里充当数据库访问层。这两个微服务可以使用此服务访问数据库。有可能吗?我在这里发现了这些东西,我认为这很有用,不是吗?只有当连接类(如SqlConnection)从MarshallByRefObject继承时才有可能。否则,您无法从其他进程访问它们。请考虑使用第三微服务作为数据访问层。