香港高速VIP云机房火爆上线啦!无需备案,开通即用!配套《巅云自助建站系统3.0》将带给您飞一般的可视化拖拽建站体验,欢迎免费体验。

sersync实现数据实时同步的方法

一佰互联网站制作(www.yinxi.net) 发布日期 2019-04-23 09:20:57 浏览数: 12

1.1 第一个里程碑:安装sersync软件

1.1.1 将软件上传到服务器当中并解压

1、上传软件到服务器上 rz -E

为了便于管理上传位置统一设置为 /server/tools 中

2、解压软件包

[root@backup sersync_installdir_64bit]# tree.└── sersync ├── bin │ └── sersync ├── conf │ └── confxml.xml └── logs

1.1.2 二进制包安装方法

二进制包安装软件方法(绿色软件安装方法):

直接解压就可以使用

[root@nfs01 sersync_installdir_64bit]# mv sersync/ /usr/local/[root@nfs01 tools]# tree /usr/local/sersync/ /usr/local/sersync/ ├── bin │ └── sersync ├── conf │ └── confxml.xml └── logsdirectories, 2 files

1.2 第二个里程碑:编写sersync配置文件

1.2.1 常见的语法格式

rsync 配置文件编写:ini语法

sersync配置文件编写:xml语法

ansible配置文件编写:yml 语法

1.2.2 修改配置文件

编写前备份

[root@backup conf]# lltotal 4-rw-r--r-- 1 root root 2214 Oct 26 2011 confxml.xml[root@backup conf]# cp confxml.xml{,.bak}

6-11行表示排除同步的数据,等价于 --exclude 功能,表示排除

<filter start="false"> <exclude expression="(.*).svn"></exclude> <exclude expression="(.*).gz"></exclude> <exclude expression="^info/*"></exclude>  <exclude expression="^static/*"></exclude></filter>

12-21行是利用inotify的功能监控指定的事件,等价与 -e create,delete…… 表示指定监控事件信息

<inotify> <delete start="true"/> <createFolder start="true"/> <createFile start="false"/> <closeWrite start="true"/> <moveFrom start="true"/> <moveTo start="true"/> <attrib start="false"/> <modify start="false"/> </inotify>

24-28行:推送到哪里 name=模块 是rsync服务器的地址

 <localpath watch="/data"> #监控那个目录 <remote ip="172.16.1.41" name="backup"/> <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath>

29-35行 定义rsync推送时的参数信息。

注意:不要有单词拼写错误 (true),否则程序不能正常启动,卡死

<rsync> <commonParams params="-az"/> <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/> <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/></rsync>

配置文件最终内容:

[root@nfs01 tools]# cat /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"> <exclude expression="(.*).svn"></exclude> <exclude expression="(.*).gz"></exclude> <exclude expression="^info/*"></exclude> <exclude expression="^static/*"></exclude> </filter> <inotify> <delete start="true"/> <createFolder start="true"/> <createFile start="false"/> <closeWrite start="true"/> <moveFrom start="true"/> <moveTo start="true"/> <attrib start="false"/> <modify start="false"/> </inotify> <sersync> <localpath watch="/data"> <remote ip="172.16.1.41" name="nfsbackup"/> <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath> <rsync> <commonParams params="-az"/> <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/> <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/> </rsync> <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> <crontab start="false" schedule="600"><!--600mins--> <crontabfilter start="false"> <exclude expression="*.php"></exclude> <exclude expression="info/*"></exclude> </crontabfilter> </crontab> <plugin start="false" name="command"/> </sersync> <plugin name="command"> <param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix--> <filter start="false"> <include expression="(.*).php"/> <include expression="(.*).sh"/> </filter> </plugin> <plugin name="socket"> <localpath watch="/opt/tongbu"> <deshost ip="192.168.138.20" port="8009"/> </localpath> </plugin> <plugin name="refreshCDN"> <localpath watch="/data0/htdocs/cms.xoyo.com/site/"> <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/> <sendurl base="http://pic.xoyo.com/cms"/> <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/> </localpath> </plugin></head>

1.3 第三里程碑: 启动sersync

1.3.1 修改文件的权限(可执行)

首先让程序让文件有执行权限

[root@nfs01 bin]# chmod a+x sersync [root@nfs01 bin]# lltotal 1768-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync

1.3.2 查看软件的帮助信息

[root@nfs01 bin]# ./sersync -hset the system paramexecute:echo 50000000 > /proc/sys/fs/inotify/max_user_watchesexecute:echo 327679 > /proc/sys/fs/inotify/max_queued_eventsparse the command param_______________________________________________________重要参数-d:启用守护进程模式重要参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍 参数-n: 指定开启守护线程的数量,默认为10个重要参数-o:指定配置文件,默认使用confxml.xml文件 参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块 参数-m:单独启用其他模块,使用 -m socket 开启socket模块 参数-m:单独启用其他模块,使用 -m http 开启http模块不加-m参数,则默认执行同步程序________________________________________________________________

1.3.3 在程序的bin目录下启动程序

./sersync -dro /usr/local/sersync/conf/confxml.xml

1.3.4 启动方法二

将/usr/local/sersync/bin/程序的bin目录添加到PATH中

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

然后sersync命令就能直接使用

[root@nfs01 scripts]# sersync -dro /usr/local/sersync/conf/confxml.xml set the system paramexecute:echo 50000000 > /proc/sys/fs/inotify/max_user_watchesexecute:echo 327679 > /proc/sys/fs/inotify/max_queued_eventsparse the command paramoption: -d run as a daemonoption: -r rsync all the local files to the remote servers before the sersync workoption: -o config xml name: /usr/local/sersync/conf/confxml.xmldaemon thread num: 10parse xml config filehost ip : localhost host port: 8008daemon start,sersync run behind the console use rsync password-file :user is rsync_backuppasswordfile is /etc/rsync.passwordconfig 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) Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)please according your cpu ,use -n param to adjust the cpu rate------------------------------------------rsync the directory recursivly to the remote servers onceworking please wait...execute command: cd /data && rsync -az -R --delete ./ rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.password >/dev/null 2>&1 run the sersync: watch path is: /data

1.4 Inotify与 sersync总结对比

1.4.1 Inotify实时并发:

结论:经过测试,每秒200文件并发,数据同步几乎无延迟(小于1秒)

1.4.2 inotify 优点:

1)监控文件系统事件变化,通过同步工具实现实时数据同步。

1.4.3 inotify 缺点

1)并发如果大于200个文件(10-100k),同步就会有延迟

2)我们前面写的脚本,每次都是全部推送一次,但确实是增量的。也可以只同步变化的文件,不变化的不理。

3)监控到事件后,调用rsync同步是单进程的,而sersync为多进程同步。既然有了inotify-tools,为什么还要开发sersync?

1.4.4 serysync功能多:(inotify+rsync命令)

1)支持通过配置文件管理

2)真正的守护进程socket

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

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

5)默认多进程rsync同步

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

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

2)drbd文件系统级别,文件系统级别,基于block块同步,缺点:备节点数据不可用

3)第三方软件的同步功能:mysql同步(主从复制),oracle,mongodb

4)程序双写,直接写两台服务器。

5)利用产品业务逻辑解决(读写分离,备份读不到,读主)

2.1 man命令的级别

centos6

[root@nfs01 ~]# man man The standard sections of the manual include: User Commands     #用户命令 System Calls     #系统调用 C Library Functions    # Ç库函数 Devices and Special Files   #设备和特殊文件 File Formats and Conventions  #文件格式和约定 Games et. Al.     #游戏等。 Miscellanea     #杂记 System Administration tools and Daemons #系统管理工具和程序 Distributions customize the manual section to their specifics, which often include additional sections.

centos7

[root@clsn tuichu]# man ~ Executable programs or shell commands System calls (functions provided by the kernel) Library calls (functions within program libraries) Special files (usually found in /dev) File formats and conventions eg /etc/passwd Games Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) System administration commands (usually only for root) Kernel routines [Non standard]

以上这篇sersync实现数据实时同步的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持网页设计。

一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

24
09月
php网站文件从gbk(gb2312)/ l

很多应用如微信公众号,小程序都需要UTF8支持,如果你的网站还是GB2312或GBK将会有不少麻烦,还有你的数据库中文乱码也是数据库格式与程... >>详情

28
03月
斗法车载互联交互系统!国产互联网SUV导购

简介:1888年第一辆汽车诞生伊始,汽车便作为从A点到B点的交通工具。尽管汽车性能一再提升,但始终摆脱不了机械的冰冷。不过,如今汽车已变成移... >>详情

10
05月
php查看pr代码和firefox用书签查询

北京网站建设公司巅云建站:在chrome或者firefox都有pr查询工具,访问某个网页的时候,自动显示当前网站制作的pr值。 但并不... >>详情

26
03月
《2019年全球风险报告》:网络安全仍是最大

简介:世界经济论坛发布的《2019年全球风险报告》难免会让人们感到沮丧。世界经济论坛公众参与负责人Adrian Monck在伦敦发表这一报告... >>详情

营业执照. cdn加速服务 备案系统认证 网络安全协会 我们的支付方式AAA认证
上海 北京 深圳 广州 天津 杭州 南京 武汉 成都 沈阳 大连 长沙 济南 青岛 苏州 福州 无锡 哈尔滨 宁波 重庆 大庆 厦门 西安 长春 珠海 郑州 海口 昆明 太原 石家庄 温州 合肥 乌鲁木齐 南宁 南通 合肥 兰州 呼和浩特 贵阳 烟台 秦皇岛 包头 唐山 银川 汕头 连云港 威海 西宁 湛江 北海 万州 涪陵 长寿 黔江 永川 丰都 忠县 江津 南川 开县 云阳 万盛 梁平 垫江 巫山 城口 建站宝盒 免费建站 门户网站建设 微信网站 手机网站 门户网站制作

7x24小时服务电话:18581389571 传真:023-85725751 免费建站交流群:236412099 139947842(自助建站交流) E-Mail:post@yinxi.net 网站投诉:
重庆楚捷科技有限公司 一佰互联©版权所有 自助建站(www.yinxi.net,Inc.) 2001-2020 All Rights Reserved 本站程序受法律保护,网站法律顾问:ITLAW-庄毅雄律师
中华人民共和国信息产业部网站备案号:渝ICP备12000592号