mongo-kafka: mongodb 数据到kafka的实时传输

本文介绍了一种从MongoDB到Kafka的数据迁移方案。利用MongoDB的oplog捕获变更数据,并将其发送到Kafka中,以实现数据流计算。文章详细说明了不同部署模式下如何获取oplog,包括master-slave和sharding+replication。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    mongodb 作为文档型的NoSQL数据库,性能较传统的关系型数据库有较大提升,而且可以利用其自带的capped collection 来实现消息队列的功能,但是sharding方式是不支持capped collection的,来新公司刚接触mongo, 公司这边的运行状态大概有两种,一种是master-slave的方式,另外一种是sharding+replication方式,由于相当的数据都存储在mongo上面,但是同时有很多离线数据需要去mongo拉取数据,针对公司业务,准备实现mongo-kafka的数据传输功能,主要为了实时的数据流计算, 数据从mongo迁移到kafka 可以降低对mongo的数据依赖, 另外kafka的读取性能要高很多。

    从mongo 拉取数据,主要利用了mongo 的oplog 来实现, 其中oplog的op字段有i/u/d等,o/o2表示操作的内容, 当op为u的时候才有o2,表示修改的内容。当mongo工作方式为master-slave的方式时,可以直接利用local数据库的oplog来实现,当为sharding+replication的方式时,需要去admin数据库获取sharding 的信息, 然后去每个分片下面去获取相关的oplog。

   相关的代码: mongo-kakfa  

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值