我正在使用Azure-Sql-Server。托管我的数据库,我在其上使用Entity-Framework(C#)。我使用Standart S3层。此定价层限制为200个并发连接到DB。
我的系统在微服务架构中工作。我的每个服务都与DB建立了开放连接。
这是我的连接字符串的样子
元数据= RES:///Model1.csdl | RES:///Model1.ssdl | RES://*/Model1.msl;提供商= System.Data.SqlClient的;提供者 连接字符串="数据源= mydb.database.windows.net;初始 目录=生产;持久安全信息=真;用户 ID = user @ my; Password = mypass; Pooling = true; Max Pool Size = 2; Enlist = false;"
我还在SQL Server documentation上读到默认情况下池已启用且MaxPoolSize为100(默认值)。
现在,我是否想要使用连接池是否聪明?因为我的应用程序在群集中包含50台机器。即使我为每台机器提供了X4连接,我也将通过AzureSql(在我的定价层S3中)达到MaxAllowedConnection。
扩展数据库不是一种选择,因为我已经为这个数据库付了很多钱。大约300美元。我检查了一下,发现为了获得400个允许的连接,我必须为数据库支付1200美元。这不是一个选择。
我的应用程序是非db aggresive。只需进行少量计算(CPU)并插入一些行。