文章预览
有个水友在知识星球提问: 沈老师,我们有个连接超时的配置,平时是300毫秒,双11压力上来了,数据库变慢了,平均请求处理时间增加到了500毫秒,于是我们决定将连接超时改为1000毫秒,但这个过程需要重启服务,会影响正在执行的请求。 有什么好办法,不重启服务,就能够修改配置么? 不妨设,读取与设置超时的伪代码如下: // 从配置文件中读取超时配置 timeout = CGlobalConf::readFileConf(“timeout”); // 设置请求超时阈值 CConnectionPool::setTimeout(timeout); 不重启服务,重新载入配置的常见方式有3这么几种,不难但很使用,花1分钟和大家说一说。 方案一:发信号触发配置重载 这种方法无需加入任何组件, 新增一个信号捕捉函数 ,来处理配置的重新载入。 // 服务启动时,设置ctrl+c回调函数 signal(SIGINT, sigint_shenjian_process); // 捕获ctrl+c时,执行
………………………………