首页 » 黑夜路人 » 正文

分享下跨服务器、机房的同步经验

【今日话题】

分享下跨服务器、机房的同步经验 – linbo

1. PHP多机负载均衡后, session共享可以放mysql 可以放 redis 可以放 memcache; 那么PHP文件是用的什么方案, NFS共享? 磁盘IO要求高的怕是瓶颈 SAN?成本有点高 rsync搞一个主,多从做同步,git或者svn拉代码往主上拉,触发更新到其他从? 会有一点延迟性,上某些功能的时候,并发量高,会有妙极的机器代码不一致的问题. – @理鱼

2. 之前做过图片服务同步的 其实这个类似于cdn 了 如果没有命中就回源 – 蚂蚁

3. 我们有跨房同步数据库~在业务逻辑做了很多 – tree

4. 云时代的分布式数据库:阿里分布式数据库服务 DRDS http://m.oschina.net/news/64312/aliyun-drds – 蚂蚁

5. 学习笔记:The Log(我所读过的最好的一篇分布式技术文章) http://blog.jobbole.com/88301/ – linbo

6. 另外有些业务是可以从底层做同步的,例如mysql,redis,有些复杂的或者自身没有提供同步复制机制的,可能就得从业务层来做同步了,一些元数据的一致性可能是个很大的问题..

其实我现在就面临这个问题,从业务层同步数据…一直没有比较靠谱的idea – flycat

7. 如果数据是有落到mysql或者redis上,是可以基于数据的事件同步不同系统的数据

跨idc也可以做

从底层上,数据库系统跨idc可以直接拉专线,降低延迟

另外从上层来说,可以做并行复制,提高吞吐

google跨全球的数据中心同步,基本就是并行的发送数据,接收方根据接收到的数据进行重排

举个例子,mysql的binlog记录了你这个数据库里面每条记录的事件类型(insert, update, delete)以及事件发生前的数据和事件发生后的数据,这时候如果有一个程序,模拟slave向master请求binlog事件,就可以做同步了 – 廖强

8. 问: 如果你有十个idc ,这些同步怎么隔离,最终一致,及时? – 滕飞

回: 这种只能最终一致性了,如果用强一致性,那你的写操作之类的可用性就会降低,还得实现一套复杂的一致性算法,类似paxos算法之类的

9. redis也有,只要记录了更新日志的,都可以

redis也可以类似的啊,redis有更新日志,你也可以拿到的 – 廖强

10. 问: 自己去监控redis更新日志,aof? – 滕飞

回: redis这个我还没做过,理论上说应该是可以的。mysql那个我在10年的时候用c写过一个 – 廖强

11. Redis主从变化后不好搞,再说你在没个机器上监控日志,想象下运维难度 – 滕飞

回: 貌似redis的主从接口中不是拿aof日志的,只能考虑去监控redis aof文件le

这跟主从变化没关系啊 – 廖强

12. Mysql你说哪个方法,如果idc少,确实可行,否则就需要在你那个方法的基础上进行改造 – 滕飞

回: 如果跨idc延迟大的话,就得考虑增加吞吐的方法了 – 廖强

13. 嗯,目前我们自己搞了一个,简单说就是有一套系统,可以把需要同步的信息收集起开,放本地文件

然后又一个同步框架,可以挂多个so

顺序读取,多个so单独进程,进度独立

互不干扰 – 滕飞

回: 以前我也有试过挂so的方式,但是对运维不友好,不如用一个消息系统来做

挂so就是运维不友好,定制监控之类的都比较麻烦,而且不同so的业务消耗资源类型也不太一样,挂多了就醉了 – 廖强

回: 消息系统最大问题,目前靠谱的不多 – 滕飞

回: 还好吧,一直用rabbitmq,没发现什么太大的问题 – 廖强

回: 我们现在就是用rabbitmq集群 稳定的很 – 影子

回: rabbitmq 太重,redis吧,而且redis多机房同步方案也很多。 – carlsnlin

14. 你消费者没法多个吧,多个idc同步,就不能隔离 – 滕飞

回: 消费者可以多个,支持广播,配好路由就好了

你还可以根据业务需求,定制到底是at most once还是at least once的 – 廖强

15. 问: 消息持久化没? – 滕飞

回: 可以配置持久化

用了持久话,性能会下降,这个是没办法避免的 – 廖强

回: 子进程啊,相互独立,bind不同cpu – 滕飞

16. 一般是持久+内存 多配置

解决性能的问题 也解决持久化问题

集群间自动同步 – 影子

回: 一个消息发两份?串行的? – 廖强

回: 消息还是一份. 异步并行 – 影子

17. 内存里的往持久化上的rabbitmq同步? – 廖强

回: 怎么说呢rabbitmq 节点可以设置不同类型,内存型,文件型,你还可以设置队列的同步方式,然后就看你消息是发到哪个节点的 – 影子

【分享链接】

1. 史上最全的“互联网+农业”报告 | 值得收藏 http://mp.weixin.qq.com/s?__biz=MzA5NzAzMjIxMw==&mid=208610730&idx=1&sn=10b6110747dea6c5e07bafc250215450 – 冰是睡着的水

2. 架构师峰会深圳站PPT http://pan.baidu.com/share/home?uk=387674681 – 学在囧途

3. 软件定义存储之未来 – 十年后的存储排行榜会怎样? http://mp.weixin.qq.com/s?__biz=MzA5MzMwMTc2Ng==&mid=215727521&idx=1&sn=279ced6746c666c04d4ad34ea3b1629e – @理鱼

4. 【负责人亲述】美团的MySQL高效运维之道 | 数据库专题03 http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=206811670&idx=1&sn=5ba0ed2f01573bc6e8f0044d780a25aa – @理鱼

5. PHPCON2015大会 北京站 PDF.zip http://vdisk.weibo.com/wap/s/z7TskCOl4vTkV – 黑夜路人

6. 创造tips的秘籍——PHP回调后门 http://drops.wooyun.org/tips/7279 – XiangZ

7. PHP vs Node.js 深入讨论 http://mp.weixin.qq.com/s?__biz=MjM5OTMxMzA4NQ==&mid=216864949&idx=2&sn=3d14f14862326266ffff876b1b8bfd2f – 猿蜗