go mysql socket_widows环境下go并发访问mysql数据库 e usage of each socket address (protocol/network address/por...

###测试环境

整个应用由多个微服务组成,涉及前端与后端,在widows环境中如果进行链条则需要把 涉及到的微服务都启动在

windows主机上(关键点时 用到的 mysql数据 rabbitmq消息队列 redis 等服务都是以容器方式运行在 linux

服务器上),但是此时会产生一个问题,每次访问数据库都会开启一个tcp链接而widows的对应用程序开放的端口

TCP客户端和办事器连接时,客户端必须分派一个动态端口,默认景象下这个动态端口的分派局限为 1024-5000,

也就是说默认景象下,客户端最多可以同时创议3977 个Socket 连接。我们可以批改如下注册表来调剂这个动态端口

的局限[HKEY_LOCAL_MACHINE System CurrentControlSet Services Tcpip Parameters]

MaxUserPort = 5000 (Default = 5000, Max = 65534)

因此就出现了上述问题,

###生产环境

在实际的生产环境中,是用docker-compose来管理整个应用的所有微服务,

顺便提下,微服务之间的通信 有rabbitmq(rabbitmq用到了 发布订阅机制 与 生产消费机制)和微服务之间对外

暴露的 restfull API(此时会涉及到超时的问题,并不能很好保证的每次的稳定性 )

docker container 的tcp最大链接数,并未找到数据,根据官方阐述 应该在65535 个,

所以当所有微服务都以容器方式跑在linux服务器上时go大量并发链接数据库产生的tcp端口不够用的现象,则会

减少,具体情款,待验证完补充

有疑问加站长微信联系(非本文作者))

5c5fbae790ec0313d6ee17e8b3dd9ba1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值