热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

monstache实时同步mongodb数据到elasticsearch

最近在做数据统计功能,需要将mongodb数据实时同步到 elasticsearch中。目前找到的方案有两种1、通过flinkmongodbcdc flinkmongodbcdc的

最近在做数据统计功能,需要将mongodb数据实时同步到 elasticsearch 中。目前找到的方案有两种

1、通过flink mongodb cdc 

flink mongodb cdc 的优点是比较灵活,可以将mongodb中的数据同步到任意支持的目标库中,不限于elasticsearch ,但是目前在使用的过程共发现同步时会自动加一个Changelog Normalize 算子,背压比较严重。网上找了很多资料,暂时无法解决。

2、monstache 优点的话就是同步速度很快暂时没有发现性能问题,缺点也比较明显就是只能同步mongodb 数据到elasticsearch 中。

 

docker 中部署monstache(需要注意monstache版本要与elasticsearch 版本匹配)

docker run --privileged --name monstache -v /home/docker/monstache/config/monstache.config.toml:/app/monstache.config.toml -d -t  rwynn/monstache '-f' '/app/monstache.config.toml'

monstache.config.toml 内容如下

1 # ip地址注意要修改
2 mongo-url = "mongodb://xx.x.xxx.xxx:27017,xx.x.xxx.xxx:27018,xx.x.xxx.xxx:27019"
3 # ip地址注意要修改
4 elasticsearch-urls = ["http://xx.x.xxx.xxx:9200"]
5 # mydb指的是需要同步的数据库
6 direct-read-namespaces = ["xx.xxxx","xx.xxxx","xx.xxxx"]
7 change-stream-namespaces = ["xx.xxxx","xx.xxxx","xx.xxxx"]
8 #elasticsearch-user = "elastic"
9 #elasticsearch-password = "pwd"
10 #elasticsearch-max-cOnns= 4
11 dropped-collectiOns= true
12 dropped-databases = true
13 resume = true
14 resume-strategy = 0
15 verbose = true
16 cluster-name = 'docker-cluster'
17
18 [[mapping]]
19 namespace = "xx.xxxx"
20 index = "xxxx"
21 type= "type-xxx"
22
23 [[mapping]]
24 namespace = "xx.xxxx"
25 index = "xxxx"
26 type= "type-xxx"
27
28 [[mapping]]
29 namespace = "xx.xxxx"
30 index = "xxxx"
31 type= "type-xxx"

 



推荐阅读
author-avatar
allenn2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有