Maxwell_kafka_bireme同步数据部署方案

https://blog.csdn.net/kiddyt05/article/details/79948772

本文转自kiddy05大佬的CSDN博客

目录

Kafka部署... 1

Maxwel部署... 2

bireme部署... 2

注意事项... 3

 

Kafka部署

[plain]  view plain  copy
  1. apt-get update  
  2.   
  3. wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz  
  4.   
  5. tar -xvf kafka_2.11-1.1.0.tgz  

 

kafka分布式部署需要通过zookeeper进行注册

由于kafka已集成zookeeper环境,直接使用kafka内置的zookeeper即可

进入kafka目录

启动zookeeper

[plain]  view plain  copy
  1. bin/zookeeper-server-start.sh config/zookeeper.properties  

修改kafka配置文件

[plain]  view plain  copy
  1. cp server.properties server0.properties  
  2.   
  3. cp server.properties server1.properties  
  4.   
  5. 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 队列用于存放基础表更改信息

[plain]  view plain  copy
  1. bin/kafka-topics.sh --create --zookeeper localhost:2181--replication-factor 3 --partitions 1 --topic zongsheng0  

order 队列用于存放订单表更改信息

[plain]  view plain  copy
  1. bin/kafka-topics.sh --create --zookeeper localhost:2181--replication-factor 3 --partitions 1 --topic order  

##################

Maxwel部署

[plain]  view plain  copy
  1. wget https://github.com/zendesk/maxwell/releases/download/v1.13.3/maxwell-1.13.3.tar.gz  
  2.   
  3. 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.example zongsheng0.properties

cp config.properties.example order.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数据库中

[plain]  view plain  copy
  1. wget https://github.com/HashDataInc/bireme/releases/download/v1.0/bireme-1.0.0.tar.gz  
  2.   
  3. tar –xvf bireme-1.0.0.tar.gz  

bireme基于jsvc需安装jsvc

[plain]  view plain  copy
  1. 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

命令

[plain]  view plain  copy
  1. 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


猜你喜欢

转载自blog.csdn.net/wayne_primes/article/details/80163503