使用Microsoft.Azure.Cosmos包时如何指定Azure Cosmos DB连接端口?
Azure Cosmos DB 指定连接端口解决方案
可以指定具体的连接端口,无需开放10000-20000整个端口范围,以下是针对Microsoft.Azure.Cosmos包的两种可行方案:
方案1:Direct模式下指定固定端口
Direct是SDK默认的连接模式,原本会随机使用10000-20000范围内的端口,你可以通过配置指定固定端口列表:
var cosmosOptions = new CosmosClientOptions { ConnectionMode = ConnectionMode.Direct, DirectConnectionOptions = new DirectConnectionOptions { // 指定需要开放的固定端口,建议设置2-3个作为冗余 Ports = new List<int> { 12345, 13579 }, PortReuseMode = PortReuseMode.PortReuseUnrestricted } }; var cosmosClient = new CosmosClient("你的Cosmos DB连接字符串", cosmosOptions);
配置完成后,SDK只会使用你指定的端口建立连接,只需让办公网络开放这些端口即可。
方案2:切换到Gateway模式(推荐)
Gateway模式默认使用443端口,这个端口几乎所有办公网络都会开放,无需额外配置端口范围,实现起来更简单:
var cosmosOptions = new CosmosClientOptions { ConnectionMode = ConnectionMode.Gateway, // 可根据业务需求调整最大连接数 GatewayModeMaxConnectionLimit = 32 }; var cosmosClient = new CosmosClient("你的Cosmos DB连接字符串", cosmosOptions);
注意:Gateway模式的网络延迟会略高于Direct模式,但对于大多数业务场景来说,这个差异可以忽略不计。
内容的提问来源于stack exchange,提问作者Mehdi Sheikh
相关产品推荐
相关产品推荐

