flume跨机房数据传输

1、场景描述:
项目部署在异地机房,需要将mongo数据库同步到本地机房,由于本地mongo服务器端口不宜在公网上暴露,在两挤房间采用flume实现数据同步。


2、技术方案:

1)、异地机房通过扩展flume-source插件从mongodb的oplog集合中实时获取变更的操作记录,通过flume avro sink发送数据。

考虑到性能问题,使用批量时间处理_channel.processEventBatch(listEvent);

保存oplog的ts字段,保证程序宕机后可以从时间点以后读取。

2)、本地机房通过flume avro source接收数据,扩展flume-sink插件将数据插入到本地的mongodb.

3、重点概念:

oplog:oplog是capped collection,因为oplog的特点(不能太多把磁盘填满了,固定大小)需要,MongoDB才发明了capped collection(the oplog is actually the reason capped collections were invented). oplog的位置 oplog在local库: master/slave 架构下 local.oplog.$main; replica sets 架构下: local.oplog.rs sharding 架构下,mongos下不能查看oplog,可到每一片去看。


备注:

启动命令:nohup flume-ng agent -n ms -c conf -f /opt/flume1.5.0/conf/mongo-source.conf -Dflume.root.logger=INFO,console &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值