###测试环境
整个应用由多个微服务组成,涉及前端与后端,在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端口不够用的现象,则会
减少,具体情款,待验证完补充
有疑问加站长微信联系(非本文作者))