sersync实时同步-创新互联

1.1.1 sersync的特点

  • 支持配置文件管理

    创新互联网站设计,为客户量身定制各类网站建设业务,包括企业型、电子商务型、成都响应式网站建设、行业门户型等各类网站,实战经验丰富,成功案例众多。以客户利益为出发点,创新互联网站制作为客户规划、按需求定制制作符合企业需求、带有营销价值的网络建站方案认真对待每一个客户,我们不用口头的语言来吹擂我们的优秀,成百上千家的成功案例见证着我们的成长。
  • 真正的守护进程socket

  • 可以对失败文件定时重传(定时任务功能)

  • 第三方的HTTP接口(例如更新cdn缓存)

  • 默认多线程同步

  • sersync配置文件

  • 安装sersync(一)

[root@nfs01 local]# rz -E                 ##window安装包上传至Linux

rz waiting to receive.

[root@nfs01 local]# ls

28-sersync.tar.gz bin etc games include lib lib64 libexec sbin share src

[root@nfs01 local]# tar  xf 28-sersync.tar.gz

[root@nfs01 local]# ls

28-sersync.tar.gz etc   include lib64   sbin    share

bin               games lib     libexec sersync src

注:软件包可以从网上下载,然后上传到Linux中,解压到/usr/local/下面

1.1.2.2修改sersync配置文件(二)

[root@nfs01 conf]# vim/usr/local/sersync/conf/confxml.xml

<?xml version="1.0"encoding="ISO-8859-1"?>

<head version="2.5">

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

   <debug start="false"/>

   <fileSystem xfs="false"/>

###软件的过滤功能,排除指定的文件,不进行同步

   <filter start="false">

     <excludeexpression="(.*)\.svn"></exclude>

     <excludeexpression="(.*)\.gz"></exclude>

     <excludeexpression="^info/*"></exclude>

     <excludeexpression="^static/*"></exclude>

   </filter>

###过滤功能结束

##sersync软件监控指定事件信息:表示触发监控管理的事件。

   <inotify>

     <deletestart="true"/>

     <createFolderstart="true"/>

     <createFilestart="false"/>

     <closeWritestart="true"/>

     <moveFromstart="true"/>

     <moveTostart="true"/>

     <attribstart="false"/>

     <modifystart="false"/>

   </inotify>

##sersync软件监控指定事件信息结束

###sersync主要参数配置信息开始()

   <sersync>

     <localpathwatch="/data">           ###指定监控的本地目录信息为/data

        <remote ip="172.16.1.41"name="nfsbackup"/>     rsync服务器与模块信息

        <!--<remoteip="192.168.8.39" name="tongbu"/>-->

        <!--<remoteip="192.168.8.40" name="tongbu"/>-->

     </localpath>

###sersync主要参数配置信息部分

     <rsync>

        <commonParamsparams="-avz"/>

        <auth start="true" users="rsync_backup"passwordfile="/etc/rsync.password"/>

        <userDefinedPort start="false"port="874"/><!-- port=874 -->

        <timeout start="true"time="100"/><!-- timeout=100 -->

        <ssh start="false"/>

     </rsync>

###sersync主要参数配置信息部分结束

     <failLogpath="/application/logs/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins execute once-->                 ##定义失败的默认日志信息

     <crontabstart="false" schedule="600"><!--600mins-->

        <crontabfilterstart="false">

            <excludeexpression="*.php"></exclude>

            <excludeexpression="info/*"></exclude>

        </crontabfilter>

     </crontab>

     <pluginstart="false" name="command"/>

   </sersync>

   <plugin name="command">

     <paramprefix="/bin/sh" suffix=""ignoreError="true"/>  <!--prefix/opt/tongbu/mmm.sh suffix-->

     <filterstart="false">

        <includeexpression="(.*)\.php"/>

        <includeexpression="(.*)\.sh"/>

     </filter>

   </plugin>

   <plugin name="socket">

     <localpathwatch="/opt/tongbu">

        <deshost ip="192.168.138.20"port="8009"/>

     </localpath>

   </plugin>

   <plugin name="refreshCDN">

     <localpathwatch="/data0/htdocs/cms.xoyo.com/site/">

        <cdninfodomainname="ccms.chinacache.com" port="80"username="xxxx" passwd="xxxx"/>

        <sendurlbase="http://pic.xoyo.com/cms"/>

        <regexurl regex="false"match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/p_w_picpaths"/>

     </localpath>

   </plugin>

</head>

[root@nfs01 conf]#

sersync的帮助信息:

[root@nfs01 bin]#/usr/local/sersync/bin/sersync -help

set the system param

execute:echo 50000000 >/proc/sys/fs/inotify/max_user_watches

execute:echo 327679 >/proc/sys/fs/inotify/max_queued_events

parse the command param

_______________________________________________________

参数-d:启用守护进程模式

参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍

c参数-n: 指定开启守护线程的数量,默认为10个

参数-o:指定配置文件,默认使用confxml.xml文件

参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块

参数-m:单独启用其他模块,使用 -m socket 开启socket模块

参数-m:单独启用其他模块,使用 -mhttp 开启http模块

不加-m参数,则默认执行同步程序

________________________________________________________________

[root@nfs01 bin]#

1.1.2.3配置sersync的命令(三)

[root@nfs01 bin]# which sersync                  ###配置完配置文件,但是系统并没有sersync这个命令

/usr/bin/which: no sersync in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

1,###追加环境变量

[root@nfs01 bin]# echo"export PATH=$PATH:/usr/local/sersync/bin" >>/etc/profile

[root@nfs01 bin]# tail -n 2/etc/profile

unset -f pathmunge

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync/bin

[root@nfs01 bin]# which sersync

/usr/bin/which: no sersync in(/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

2,###生效环境变量配置文件

[root@nfs01 bin]#source /etc/profile

[root@nfs01 bin]# which sersync

/usr/local/sersync/bin/sersync

[root@nfs01 bin]#

1.1.2.4启动sersync命令(四)

在NFS客户端上配置sersync,启动命令。

[root@nfs01 data]#sersync -dro /usr/local/sersync/conf/confxml.xml

set the system param

execute:echo 50000000 >/proc/sys/fs/inotify/max_user_watches

execute:echo 327679 >/proc/sys/fs/inotify/max_queued_events

parse the command param

option: -d  run as a daemon

option: -r   rsync all the local files to the remote servers before the sersyncwork

option: -o   config xml name: /usr/local/sersync/conf/confxml.xml

daemon thread num: 10

parse xml config file

host ip : localhost     host port: 8008

daemon start,sersync run behind the console

use rsync password-file :

user is  rsync_backup

passwordfile is  /etc/rsync.password

config xml parse success

please set /etc/rsyncd.conf maxconnections=0 Manually

sersync working thread 12 = 1(primary thread) + 1(fail retry thread) +10(daemon sub threads)

Max threads numbers is: 22 =12(Thread pool nums) + 10(Sub threads)

please according your cpu ,use -n param to adjust the cpurate

chmod: cannot access`/application/logs/rsync_fail_log.sh': No such file or directory

------------------------------------------

rsync the directory recursivly to theremote servers once

working please wait...

execute command: cd /data &&rsync -avz -R --delete ./ --timeout=100rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.password>/dev/null 2>&1

run the sersync:

watch path is: /data

[root@nfs01 data]#

在服务器上查看/backup文件中变化

[root@backup nfsbackup]# rm -fr *

[root@backup nfsbackup]# ls

[root@backup nfsbackup]# ls

3 4 hehe maomao oldboy

[root@backup nfsbackup]#

  • sersync的参数

-r 开启第一次进行一次完全的同步,保持一致

-o指定confxml.xml 的文件

-n 指定默认线程池的线程总数,如果不指定默认启动线程池的数量是10,CPU使用过高,可以通过这个参数进行调整

-d参数为后台启动

-m 不同步,只运行插件

1.2 高并发数据实时同步方案小结:

  • inotify(sersync)+rsync,是文件级别的。

  • drbd文件系统级别,基于block块同步,但是备节点数据不可用。

  • 第三方软件的同步功能:mysql,oracle,mongodb

  • 程序双写,直接写双台服务器

  • 利用业务逻辑解决(读写分离)

  • NFS集群(1 4 5 方案整合)(双写主存储,备用存储 inotify/sersync+rsync),没有解决延迟问题。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

本文名称:sersync实时同步-创新互联
文章分享:https://www.cdcxhl.com/article12/ehdgc.html

成都网站建设公司_创新互联,为您提供定制开发微信小程序静态网站建站公司动态网站搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管