日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sersync+rsync实现实时同步

發布時間:2023/11/29 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sersync+rsync实现实时同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在分布式應用中會遇到一個問題,就是多個服務器間的文件如何能始終保持一致。一種經典的辦法是將需要保持一致的文件存儲在NFS上,這種方法雖然簡單方便但卻將本來多點的應用在文件存儲上又變成了單點,這違背了分布式應用部署的初衷。為了保留多點特性,文件仍然保存在各服務器上,那就需要在每個服務器中保持文件的同步。

服務器同步的解決方案有很多。比較流行的有inotify-tools+rsync和Openduckbill(依賴于inotify-tools)?,F在介紹一個解決方案sersync,相對上面兩個項目有以下優點:

  • sersync是使用c++編寫,而且對linux系統文件系統產生的臨時文件和重復的文件操作進行過濾,所以在結合rsync同步的時候,節省了運行時耗和網絡資源。因此更快。

  • sersync配置起來很簡單,其中bin目錄下已經有基本上靜態編譯的2進制文件,配合bin目錄下的xml配置文件直接使用即可。

  • 使用多線程進行同步,尤其在同步較大文件時,能夠保證多個服務器實時保持同步狀態。

  • 有出錯處理機制,通過失敗隊列對出錯的文件重新同步,如果仍舊失敗,則按設定時長對同步失敗的文件重新同步。

  • 自帶crontab功能,只需在xml配置文件中開啟,即可按要求隔一段時間整體同步一次。無需再額外配置crontab功能。

  • 能夠實現socket與http插件擴展。


  • sersync2完全安裝配置說明(一) —-基本功能使用

    當前版本的sersync依賴于rsync進行同步。如下圖所示,在同步主服務器上開啟sersync,將監控路徑中的文件同步到目標服務器,因此需要在主服務器配置sersync,在同步目標服務器配置rsync。對于rsync配置,在google上可以找到很多資料,以下只是一些必要的配置和使用說明,僅供參考,請根據您的實際情況修改。

    如圖所示,需要在同步主服務器上配置sersync,在同步目標服務器配置rsync,并在目標服務器開啟rsync守候進程,這樣在主服務器產生的文 件,就會被sersync實時同步到多個目標服務器。在centos系統下默認已經安裝了rsync,只需進行配置,并開啟rsync守候進程即可。

    配置同步目標服務器rsync

    在多臺目標服務器上配置如下:

    vi /etc/rsyncd.confuid=root gid=root max connections=36000 use chroot=no log file=/var/log/rsyncd.log pid file=/var/run/rsyncd.pid lock file=/var/run/rsyncd.lock[tongbu1] path=/opt/tongbu1 comment = xoyo video files ignore errors = yes read only = no hosts allow = 192.168.0.100/24 hosts deny = *

    上面配置文件,表明允許主服務器(假設ip為192.168.0.100)訪問,rsync同步模塊名為[tongbu1],將同步過來的文件放入path指定的目錄/opt/tongbu1。如果有多臺從服務器,則每一臺都需要進行類似的rsync配置,上面的uid gid要換成您服務器的相應用戶,主意rysnc要有對被同步目錄的操作權限。配置好之后,使用如下命令,開啟rsync守護進程:

    rsync --daemon

    在主服務器上安裝配置sresync

    在google code下載sersync的可執行文件版本,里面有配置文件與可執行文件,這里用sersync2.5進行說明,新版本配置形式類似。

    1.在主服務器上開啟sersync守護進程,使sersync在后臺運行,開啟實時同步。

    ./sersync -d

    過程如下:

    [root@localhost GNU-Linux-x86]# lsconfxml.xml sersync2[root@localhost GNU-Linux-x86]# ./sersync2 -dset the system paramexecute:echo 50000000 > /proc/sys/fs/inotify/max_user_watchesexecute:echo 327679 > /proc/sys/fs/inotify/max_queued_eventsparse the command paramdaemon thread num: 10parse xml config filehost ip : localhost host port: 8008config xml parse successplease set /etc/rsyncd.conf max connections=0 Manuallysersync working thread 12 = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)please according your cpu ,use -n param to adjust the cpu raterun the sersync:watch path is: /opt/tongbu 表明,sersync已經開啟,可以在本地監控路徑下建立文件,查看遠程是否同步成功。

    2.在開啟實時監控的之前對主服務器目錄與遠程目標機目錄進行一次整體同步

    ./sersync -r

    如果需要將sersync運行前,已經存在的所有文件或目錄全部同步到遠程,要以-r參數運行sersync,將本地與遠程整體同步一次。
    如果設置了過濾器,即在xml文件中,filter為true,則暫時不能使用-r參數進行整體同步。-r參數將會無效。

    3.查看啟動參數幫助

    ./sersync --help

    4.指定配置文件

    ./sersync -o XXXX.xml

    對于sersync使用可執行文件目錄下的默認配置文件confxml.xml,如果需要使用另一個配置文件,可以使用-o參數指定其它配置文件。

    5.指定默認的線程池的線程總數

    ./sersync -n num

    例如 ./sersync -n 5 則指定線程總數為5,如果不指定,默認啟動線程池數量是10,如果cpu使用過高,可以通過這個參數調低,如果機器配置較高,可以用-n跳高線程總數。

    6.不進行同步,只運行插件

    ./sersync -m pluginName

    例如./sersync -m command,則在監控到文件事件后,不對遠程目標服務器進行同步,而是直接運行command插件。

    7.多個參數可以配合使用

    ./sersync -n 8 -o abc.xml -r -d

    表示,設置線程池工作線程為8個,指定abc.xml作為配置文件,在實時監控前作一次整體同步,以守護進程方式在后臺運行。

    8.通常情況下,對本地到遠程整體同步一遍后,在后臺運行實時同步。

    ./sersync -d


    sersync2 完全安裝配置說明(二) —-可選功能與xml高級配置

    XML文件說明

    sersync可選功能是通過xml配置文件來實現的,基本配置文件如下:

    01<?xmlversion="1.0"encoding="ISO-8859-1"?>
    02<headversion="2.5">
    03<hosthostip="localhost"port="8008"></host>
    04<filterstart="false">
    05<excludeexpression="(.*)\.gz"></exclude>
    06<excludeexpression="^info/*"></exclude>
    07</filter>
    08<inotify>
    09<deletestart="true"/>
    10<createFolderstart="true"/>
    11<createFilestart="true"/>
    12</inotify>
    13<debugstart="false"/>
    14<sersync>
    15<localpathwatch="/opt/tongbu">
    16<remoteip="192.168.0.104"name="tongbu1"/>
    17<!--<remote ip="192.168.8.39" name="tongbu"/>-->
    18<!--<remote ip="192.168.8.40" name="tongbu"/>-->
    19</localpath>
    20<rsync>
    21<commonParamsparams="-artuz"/>
    22<authstart="false"users="root"passwordfile="/etc/rsync.pas"/>
    23<userDefinedPortstart="false"port="874"/><!-- port=874 -->
    24<timeoutstart="false"time="100"/><!-- timeout=100 -->
    25<sshstart="false"/>
    26</rsync>
    27<failLogpath="/tmp/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60min execute once-->
    28<crontabstart="false"schedule="600"><!--600mins-->
    29<crontabfilterstart="false">
    30<excludeexpression="*.gz"></exclude>
    31<excludeexpression="info/*"></exclude>
    32</crontabfilter>
    33</crontab>
    34<pluginstart="false"name="command"/>
    35</sersync>

    下面做逐行的進行解釋說明:

    <host hostip="localhost" port="8008"></host>

    hostip與port是針對插件的保留字段,對于同步功能沒有任何作用,保留默認即可。

    filter文件過濾功能

    對于sersync監控的文件,會默認過濾系統的臨時文件(以“.”開頭,以“~”結尾),除了這些文件外,可以自定義其他需要過濾的文件。

    <filter start="true"> <exclude expression="(.*)\.gz"></exclude> <exclude expression="^info/*"></exclude> </filter>

    將start設置為 true,在exclude標簽中,填寫正則表達式,默認給出兩個例子分別是過濾以”.gz”結尾的文件與過濾監控目錄下的info路徑(監控路徑/info /*),可以根據需要添加,但開啟的時候,自己測試一下,正則表達式如果出現錯誤,控制臺會有提示。相比較使用rsync 的exclude功能,被過濾的路徑,不會加入監控,大大減少rsync的通訊量。

    inotify監控參數設定(優化)
    對于inotify監控參數可以進行設置,根據您項目的特點優化srsync。

    <inotify> <delete start="true"/> <createFolder start="true"/> <createFile start="true"/> </inotify>

    對于大多數應用,可以嘗試把createFile(監控文件事件選項)設置為false來提高性能,減少 rsync通訊。因為拷貝文件到監控目錄會產生create事件與close_write事件,所以如果關閉create事件,只監控文件拷貝結束時的事 件close_write,同樣可以實現文件完整同步。
    注意:強將createFolder保持為true,如果將createFolder設為false,則不會對產生的目錄進行監控,該目錄下的子文件與子目錄也不會被監控。所以除非特殊需要,請開啟。默認情況下對創建文件(目錄)事件與刪除文件(目錄)事件都進行監控,如果項目中不需要刪除遠程目標服務器的文件(目錄),則可以將delete 參數設置為false,則不對刪除事件進行監控。

    Debug開啟

    <debug start="false"/>

    設置為true,開啟debug模式,會在sersync正在運行的控制臺,打印inotify事件與rsync同步命令。

    XFS文件系統

    <fileSystem xfs="false"/>

    對于xfs文件系統的用戶,需要將這個選項開啟,才能使sersync正常工作.

    文件監控與遠程同步設置

    <localpath watch="/opt/tongbu"> <remote ip="192.168.0.104" name="tongbu1"/> <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath>

    詳見sersync2 完全安裝配置說明(一) —-基本功能使用

    Rsync參數配置

    <rsync> <commonParams params="-artuz"/> <auth start="false" users="root" passwordfile="/etc/rsync.pas"/> <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/> </rsync>

    commonParams可以用戶自定義rsync參數,默認是-artuz
    auth start=”false” 設置為true的時候,使用rsync的認證模式傳送,需要配置user與passwrodfile(–password-file=/etc/rsync.pas),來使用。userDefinedPort 當遠程同步目標服務器的rsync端口不是默認端口的時候使用(–port=874)。timeout設置rsync的timeout時間(–timeout=100)。ssh 使用rsync -e ssh的方式進行傳輸。
    失敗日志腳步配置

    <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/>

    對于失敗的傳輸,會進行重新傳送,再次失敗就會寫入rsync_fail_log,然后每隔一段時間(timeToExecute進行設置)執行該腳本再次重新傳送,然后清空該腳本??梢酝ㄟ^path來設置日志路徑。

    Crontab定期整體同步功能

    <crontab start="false" schedule="600"><!--600mins--> <crontabfilter start="false"> <exclude expression="*.gz"></exclude> <exclude expression="info/*"></exclude> </crontabfilter> </crontab>

    crontab可以對監控路徑與遠程目標主機每隔一段時間進行一次整體同步,可能由于一些原因兩次失敗重傳都失敗了,這個時候如果開啟了crontab功 能,還可以進一步保證各個服務器文件一致,如果文件量比較大,crontab的時間間隔要設的大一些,否則可能增加通訊開銷。schedule這個參數是設置crontab的時間間隔,默認是600分鐘
    如果開啟了filter文件過濾功能,那么crontab整體同步也需要設置過濾,否則雖然實時同步的時候文件被過濾了,但crontab整體同步的時候 如果不單獨設置crontabfilter,還會將需過濾的文件同步到遠程,crontab的過濾正則與filter過濾的不同,也給出了兩個實例分別對 應與過濾文件與目錄??傊绻瑫r開啟了filter與crontab,則要開啟crontab的crontabfilter,并按示例設置使其與filter的過濾一一對應。

    插件設置

    <plugin start="false" name="command"/>

    當設置為true的時候,將文件同步到遠程服務器后會調用name參數指定的插件。詳見請看插件設置。


    轉載于:https://blog.51cto.com/zhangshaoxiong/1307054

    總結

    以上是生活随笔為你收集整理的sersync+rsync实现实时同步的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 超碰人人搞 | 日韩精品无码一区二区三区 | 视频一区三区 | h成人在线 | 国产黄a三级三级看三级 | 国产精品久久久久久亚洲 | 欧美天天色 | 美女让男生桶 | 日韩天堂一区 | 日韩欧美中文字幕一区二区三区 | 日本免费无人高清 | 天天爽夜夜爽 | 美女久久久久久 | 久久草视频 | 久久久久亚洲av成人网人人网站 | 亚洲精品国产精品国自产观看 | 在线观看成年人视频 | 日本网站黄色 | www黄色大片| 国产成人精品亚洲 | 国产欧美日韩精品一区 | 色香色香欲天天天影视综合网 | 天啪| 香蕉成人在线视频 | 人人干人人爽 | 国产永久精品大片wwwapp | 日韩精品一区二区在线播放 | 亚洲欧美日韩视频一区 | 手机看片中文字幕 | 九九热精品 | 午夜精品久久久内射近拍高清 | 久久久久国产精 | 欧美亚洲二区 | 欧美日韩不卡一区二区 | 欧美成人午夜电影 | 亚洲一级一区 | 三级亚洲| 久久精品韩国 | 亚洲最大在线视频 | 青草青草视频 | 短视频在线观看 | 91碰在线视频 | 色婷婷av久久久久久久 | 中文日韩在线观看 | 国产超碰人人爽人人做人人爱 | 69xav| 欧美成人三区 | 伦理片久久 | 欧美一区二区在线视频观看 | 日本午夜一区二区 | 久久va| 青草精品 | 亚洲v在线 | 激情黄色小说网站 | 女人扒开双腿让男人捅 | 国产精品suv一区二区69 | 看免费黄色大片 | 欧美日韩成人一区二区 | 91久久国语露脸精品国产高跟 | 丰满少妇久久久久久久 | 国产精品成人一区二区 | 精品一区在线视频 | 亚洲性久久 | 国产极品999| 公交上高潮的丁芷晴 | 成人人人人人欧美片做爰 | 泰剧19禁啪啪无遮挡 | 99精品国产一区二区 | 懂色一区二区三区免费观看 | 久久艹国产精品 | 都市激情 自拍偷拍 | 欧美人成在线 | 国产午夜精品久久久久久久久久 | 欧美另类在线播放 | 国产精品3 | 日本视频精品 | 中文字幕免费高清网站 | 成人动漫免费在线观看 | 91精品国产入口在线 | 久久久经典| 男女互插视频 | 四虎成人av| 成人在线观看国产 | 日韩伦理av| 国产女同91疯狂高潮互磨 | 亚洲永久免费视频 | 少妇一级1淫片 | 欧美激情综合五月色丁香 | 国产在线二区 | 久久久久久国产精品视频 | 伊人一区二区三区四区 | 日韩在线观看免费高清 | 欧美亚洲日本国产 | 中文字幕精品国产 | 最好看的mv中文字幕国语电影 | 激情五月激情 | 亚洲av综合色区无码一区爱av | 在线观看黄网址 | 欧美黄色一区二区 |