Maxwell_kafka_bireme同步数据部署方案
目录Kafka部署... 1Maxwel部署... 2bireme部署... 2注意事项... 3 Kafka部署apt-get updatewget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgztar -xvf kafka_2.11-1.1.0.tgz kafka分布式部署需要通过z...
目录
Kafka部署... 1
Maxwel部署... 2
bireme部署... 2
注意事项... 3
Kafka部署
apt-get update
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz
tar -xvf kafka_2.11-1.1.0.tgz
kafka分布式部署需要通过zookeeper进行注册
由于kafka已集成zookeeper环境,直接使用kafka内置的zookeeper即可
进入kafka目录
启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
修改kafka配置文件
cp server.properties server0.properties
cp server.properties server1.properties
cp server.properties server2.properties
分别在以上三个配置文件中对如下参数进行修改
broker.id=0(3个文件需唯一)
listeners = PLAINTEXT://*:9092(kafka服务监听端口)
log.dirs=/app/data/kafka/9092(kafka数据日志文件存放地址,3个进程需分开)
修改完配置文件后进行kafka进程的启动
bin/kafka-server-start.sh config/server0.properties &
bin/kafka-server-start.sh config/server1.properties &
bin/kafka-server-start.sh config/server2.properties &
创建topic
zongsheng0 队列用于存放基础表更改信息
bin/kafka-topics.sh --create --zookeeper localhost:2181--replication-factor 3 --partitions 1 --topic zongsheng0
order
队列用于存放订单表更改信息
bin/kafka-topics.sh --create --zookeeper localhost:2181--replication-factor 3 --partitions 1 --topic order
##################
Maxwel部署
wget https://github.com/zendesk/maxwell/releases/download/v1.13.3/maxwell-1.13.3.tar.gz
tar -xvf maxwell-1.13.3.tar.gz
Maxwell模仿mysql主从复制拉取bin-log日志,所以每个maxwell进程相当于一个mysql从节点,相对应需要配置唯一的server_id
这里我们设计为两个maxwell进程
1读取bin-log中基础表信息
2读取bin-log中订单表信息
对应配置文件为zongsheng0.properties,order.properties
cp config.properties.examplezongsheng0.properties
cp config.properties.exampleorder.properties
对应配置文件修改
log_level=debug (日志级别)
producer=kafka (生产者类型,我们使用的是kafka)
host=* (源数据库mysql的地址)
user=root (源数据库mysql的用户名)
password=* (源数据库mysql的密码)
client_id=2 (maxwell进程的唯一ID)
replica_server_id=22 (maxwell复制bin-log的唯一ID,类似mysql从节点的server_id)
port=3306 (源数据库mysql的端口)
kafka.bootstrap.servers=&*:9092,*:9093,*:9094
(目标消息中间件kafka服务端的ip与端口,分布式部署时对应多个ip多个端口)
kafka_topic=zongsheng0(目标消息中间件kafka对应的topic队列)
include_dbs=zongsheng0(筛选源数据库bin-log中对应数据库存入kafka)
include_tables=abc (筛选源数据库bin-log中对应表存入kafka)
启动2个maxwell进程分别拉取zongsheng0中的基础信息和余下多库中的订单信息
bin/maxwell –config zongsheng0.properties–daemon(指定配置文件,指定后台启动)
bin/maxwell –config order.properties–daemon(指定配置文件,指定后台启动)
###################
bireme部署
Bireme作为消费者从kafka队列中消费信息并插入对应的deepgreen数据库中
wget https://github.com/HashDataInc/bireme/releases/download/v1.0/bireme-1.0.0.tar.gz
tar –xvf bireme-1.0.0.tar.gz
bireme基于jsvc需安装jsvc
apt-get install jsvc
对应配置文件config.properties(基础配置)maxwell1.properties(表配置文件)
target.url =jdbc:postgresql://*:5432/zongsheng0
(对应deepgreen数据库的jdbc连接地址)
target.user = root
(对应deepgreen数据库的用户名)
target.passwd = *
(对应deepgreen数据库的用户名)
data_source = maxwell1
(数据源类型)
maxwell1.type = maxwell
maxwell1.kafka.server =*:9092,*:9093,*:9094
(kafka队列服务的ip+端口)
maxwell1.kafka.topic = order
(kafka的队列名)
maxwell1.kafka.groupid = bireme
(kafka消费者的组名)
-------------------------------------------
maxwell1.properties配置
(前面写源数据名+源表名,后面写目标数据库schemal+目标数据库表名)
zongsheng1.vem_order_info =public.vem_order_info
zongsheng2.vem_order_info =public.vem_order_info
zongsheng3.vem_order_info =public.vem_order_info
zongsheng4.vem_order_info =public.vem_order_info
zongsheng5.vem_order_info =public.vem_order_info
zongsheng6.vem_order_info =public.vem_order_info
zongsheng7.vem_order_info =public.vem_order_info
zongsheng8.vem_order_info =public.vem_order_info
zongsheng9.vem_order_info =public.vem_order_info
zongsheng10.vem_order_info =public.vem_order_info
命令
bin/bireme {start|stop|restart}
注意事项
Maxwell负责拉取mysql数据源的binlog日志,同时maxwell会在源数据库中创建名为maxwell的数据库用来存放源数据库的schemal、表名、字段名、bin-log-postion等信息
在源库进行flush logs操作时会导致maxwell找不到上一次的bin-log位置点
所以需要手动删除源数据库上的maxwell数据库,重启maxwell来获取源数据的信息
同上在源数据库进行定期数据清理时要注意以下几点
1关闭maxwell停止bin-log获取
2手动删除源数据库上的maxwell数据库
3删除源数据库的需要清理的数据
4在源数据库上重置bin-log,resetmaster
更多推荐
所有评论(0)