成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

改了配置,不想重啟,怎么整?

開發 開發工具 前端
不重啟服務,重新載入配置的常見方式有3這么幾種,不難但很使用,花1分鐘和大家說一說。

有個水友在知識星球提問:沈老師,我們有個連接超時的配置,平時是300毫秒,雙11壓力上來了,數據庫變慢了,平均請求處理時間增加到了500毫秒,于是我們決定將連接超時改為1000毫秒,但這個過程需要重啟服務,會影響正在執行的請求。有什么好辦法,不重啟服務,就能夠修改配置么?

不妨設,讀取與設置超時的偽代碼如下:

  1. // 從配置文件中讀取超時配置 
  2. timeout = CGlobalConf::readFileConf(“timeout”); 
  3. // 設置請求超時閾值 
  4. CConnectionPool::setTimeout(timeout); 

不重啟服務,重新載入配置的常見方式有3這么幾種,不難但很使用,花1分鐘和大家說一說。

方案一:發信號觸發配置重載

這種方法無需加入任何組件,新增一個信號捕捉函數,來處理配置的重新載入。

  1. // 服務啟動時,設置ctrl+c回調函數 
  2. signal(SIGINT, sigint_shenjian_process); 
  3.   
  4. // 捕獲ctrl+c時,執行配置重新載入動作 
  5. void sigint_shenjian_process(int){ 
  6.          //從配置中讀取超時配置 
  7.          timeoutCGlobalConf::readFileConf(“timeout”); 
  8.          //設置請求超時閾值 
  9.          CConnectionPool::setTimeout(timeout); 
  10.   

當需要變更配置時,只需要:

  • 修改配置文件;
  • 發送信號,觸發配置重新載入;

畫外音:啥,不知道如何向服務發信號?

方案二:檢測配置文件變化,自動重新載入

這種方法無需手動發送信號,修改完配置文件,自動檢測,自動載入,需要加入文件監控組件。

畫外音:這類組件開源的也不少。

文件監控組件如何能監控文件的變化呢?

別想復雜了,可以定期檢查文件的md5或者last_modify_time。

  1. // 服務啟動時,初始化 
  2. CFileMonitor::init(){ 
  3.  // 獲取初始md5 
  4.  old_md5=xxx
  5.   
  6. // 啟動一個進程,監控文件變化 
  7. CFileMonitor::start(){ 
  8.  while(1){ // 循環檢查 
  9.  // 獲取最新md5 
  10.  now_md5=xxx
  11.  // 比對md5是否變化,如果變化 
  12.  if(now_md5!=old_md5){ 
  13.          //從配置中讀取超時配置 
  14.          timeoutCGlobalConf::readFileConf(“timeout”); 
  15.          //設置請求超時閾值 
  16.          CConnectionPool::setTimeout(timeout); 
  17.          //修改md5 
  18.          old_md5=now_md5
  19.  } 
  20.  // 一秒后再檢查 
  21.  sleep(1000); 
  22.  } 

方案三:配置中心,配置變化時回調

次方案拋棄了配置文件,需要引入配置中心:

  • 所有服務從配置中心拿配置;
  • 必須從配置中心后臺修改配置;
  • 配置修改,配置中心回調引用了相關配置的服務;
  1. // 服務啟動時,從配置中心獲取配置,并注冊回調函數 
  2. timeout = CConfCenter::(“timeout”, callback_shenjian); 
  3. // 設置請求超時閾值 
  4. CConnectionPool::setTimeout(timeout); 
  5.   
  6. void callback_shenjian(timeout){ 
  7.          //在配置中心修改配置時,會收到回調 
  8.          CConnectionPool::setTimeout(timeout); 
  9.   

修改配置,不重啟服務,上面三種方式都很常見,不難但實用。

畫外音:特別是前兩種方式,瞬間就能實現。

希望大家有收獲。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-09-26 22:12:01

配置重啟文件

2017-06-15 08:02:02

庫存扣減查詢

2012-10-15 09:22:24

云數據存儲云存儲云數據存儲成本

2018-05-23 07:14:10

整合數據中心運維管理

2021-01-06 09:12:00

MySQL數據庫架構

2013-02-28 11:00:51

IE10瀏覽器

2010-03-30 10:02:09

陳曉薇

2015-11-12 10:56:13

2021-07-29 07:51:43

工具 HappensBefore

2021-08-11 11:25:22

happens - bJava代碼

2021-06-10 14:34:02

鴻蒙HarmonyOS應用

2013-08-12 15:10:50

GoogleGoogle總部

2022-11-29 10:33:15

Kubectl命令pod

2013-12-03 16:38:35

vSphere HA虛擬機

2025-01-21 11:46:26

2015-06-15 11:21:03

密碼

2022-04-20 09:50:44

CTO技術管理職業發展

2020-03-02 19:51:40

戴爾

2019-10-24 08:00:00

JSON工具前端

2021-03-18 10:35:04

MySQL數據庫架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产有码| av一区二区三区四区 | 国产日韩精品在线 | 国产激情视频网站 | 国产精品国产亚洲精品看不卡15 | 九九国产在线观看 | 亚洲性视频在线 | 性欧美xxxx | 欧美精品久久久 | 久久久亚洲综合 | 亚洲午夜视频在线观看 | 国产精品一码二码三码在线 | 免费国产黄网站在线观看视频 | 久久国产日本 | 国产精品夜夜夜一区二区三区尤 | 亚洲高清视频在线观看 | 精品一区二区三区在线观看 | 四虎影音 | 国产精品久久久久久久久久免费 | 欧美日本韩国一区二区 | 99精品视频免费观看 | 欧美一级在线 | 自拍偷拍亚洲欧美 | 国产成人av在线播放 | 国产精品成人一区二区三区 | 午夜亚洲 | 国产一区二区在线视频 | 国产精品视频久久久久久 | 日本天堂一区 | 亚洲精品一区国产精品 | 亚洲va国产日韩欧美精品色婷婷 | 免费人成在线观看网站 | 日韩精品免费 | 国产精品影视在线观看 | 99在线免费观看视频 | 日韩欧美在线观看一区 | 国产精品精品视频一区二区三区 | 污片在线免费观看 | 一区二区三区电影在线观看 | www.婷婷 | 国产激情精品视频 |