项目出现服务器集中重启部署时部分服务器连接数据库失败的问题,因为数据库地址是用内部域名(Private Zone)配置的,合理怀疑内部域名集中解析时存在并发问题。
经和阿里云技术支持确认,的确如此:目前VPC下确实会有DNS限速,频率大概在单台数千QPS,整个VPC限制在数万QPS。
安装NSCD服务,缓存域名解析结果,能分摊高峰解析流量,解决这个问题。
sudo yum install -y nscd
sudo systemctl enable nscd.service
sudo systemctl restart nscd.service
有一个配置需要注意,域名缓存时间不能设置太大,不然域名更新后不会得到及时刷新,需要手动刷新才能生效。
结合项目实际情况,设定域名解析成功后缓存60秒,域名解析失败后不缓存。
修改配置文件 /etc/nscd.conf 中相应内容
enable-cache hosts yes
positive-time-to-live hosts 60
negative-time-to-live hosts 0
或者,也可以将域名缓存时间设置得比较大,在域名更新后手动刷新,手动刷新的命令是
sudo nscd -i hosts
来源:CSDN
作者:码者不惑
链接:https://blog.csdn.net/hahoo2009/article/details/96018554