基於樂觀鎖的配置伺服器與XServer的互動

2021-07-03 05:59:30 字數 1005 閱讀 7663

xserver與配置伺服器,配置伺服器儲存有xserver的配置檔案中的資訊。如何在專案啟動時,讓xserver從配置伺服器中獲取到自己的配置資訊,並達到通訊資源的節省與控制。

通訊如下:

xserver與配置伺服器都啟動,沒有先後順序之分,初始配置伺服器知道xserver的xserverhost和xserverpost,但是xserver不知道配置伺服器的cfghost和cfgport;

配置伺服器啟動執行緒不停的向xserver傳送資訊info1,資訊info1包含配置伺服器的cfghost和cfgport,以及xserver的配置檔案的版本號xservercfgversion=v1;

xserver收到cfghost、cfgport、xservercfgversion後,判斷從本地儲存的配置檔案中自己的版本號v2和v1的關係。如果v1=v2,向配置伺服器傳送notrequestresource事件,意思是我不需要別的東西了,結束。如果v1!=v2,記錄標記flag=true(初始flag=false);

xserver連線配置伺服器的類中啟動乙個執行緒不停的判斷標記flag,如果flag=true,就向配置伺服器傳送requestresource事件,意思是版本號不一樣,我要我的配置資源;如果flag=false,啥都不幹。

配置伺服器收到requestresource事件,做兩件事情,一是停止傳送資訊info1,二是不停的向xserver傳送它的配置資源資訊info2,info2中除了xserver的配置資源資訊外,還有配置伺服器的cfghost和cfgport。

xserver收到info2後,將info1和info2都寫入到本地配置檔案中,之後所有的讀取都從本地配置檔案中讀取,同時使flag=false,然後向配置伺服器傳送確認訊息info3

配置伺服器收到info3後,停止向xserver傳送資訊info2,結束。

注意問題:

基於centos的svn伺服器搭建與配置

第一步 svn簡介 svn是subversion的簡稱,是乙個開放源 的版本控制系統.第二步 搭建前準備 伺服器 centos7 centos6以下教程 親測也可以 第三步 首先檢測伺服器是否安裝svn,如果安裝先解除安裝 svnserve version 檢視svn版本資訊yum remove s...

基於gitosis的Git雲端伺服器配置

硬體 雲端阿里雲伺服器 軟體 雲端 gitosis git ssh 本地 cygwin 或者 gitbash 參考文章 詳細步驟如下 1 建立git賬號用於管理git伺服器 useradd s bin bash d home git g root m c manager for git server...

基於阿里雲伺服器的Qt SDK配置

1.mysql配置 1.1安裝mysql伺服器和客戶端 1.2配置mysql編碼格式 1.3重啟mysql 1.4登陸mysql 1.5檢視mysql編碼 1.6安裝mysqlclient驅動 2.安裝qt 2.1選擇qt版本 2.2校驗md5 2.3安裝相關元件 2.4建立libmysqlclie...