該canal集成了java,無須繁瑣的安裝,直接配置幾個參數即可實現mysql-canal-kafka
Mysql 環境配置
一、binlog 格式設置
調整 mysql 參數至如下即可。
mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
1 row in set (0.00 sec)
參考配置(my.cnf):
[mysqld]
character_set_server
= utf8
init_connect
= 'SET
NAMES utf8'
server-id
= 1
log_bin
= mysql-bin
binlog_format
= row
expire_logs_days
= 30
sql_mode
= NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
|
修改好上述配置後,最好再運行一次 flush logs 命令
二、super privilege user
線下測試默認數據庫是可以用 root 的,有 root 用 root 即可。
Kafka 環境配置
這個安裝比較簡單,網上都有,掠過,canal需要配置kafka的broker地址和topic
Zookeeper 環境配置
線上使用的 zookeeper 爲 3.4.6 版本,部署到某個地方,微調 zoo.cfg,啓動即可。
Canal 環境配置
一、部署
下載 canal-lite.xxx (附件過大無法上傳,有需求請留言)到目標位置,運行以下命令:
cat canal-lite.x* > canal.tar.gz
tar -zxvf canal.tar.gz
canal 需要 java 版本 >= 1.7 才能運行。開啓和關閉方式分別爲 sh bin/startup.sh
和 sh bin/stop.sh
二、配置修改
canal 需要修改的配置在以下兩個位置:
conf/canal.properties
conf/example/instance.properties
其中 example 爲 destination 名稱,如果和其他 canal 混用 zookeeper,請保證 destination 不會衝突。
1
2
3
4
5
|
#
canal 本身會綁定到一個端口上,需要保證這個端口沒有被佔用
canal.port
= 3406
#
canal 所依賴的 zookeeper 地址
canal.zkServers
= 127.0 . 0.1 : 2181
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#
canal 連接至 mysql 時所使用的 slave id,需要保證連接至同一個 mysql 的 id 互相不衝突
canal.instance.mysql.slaveId
= 123456
#
canal 連接至 mysql 時所使用的地址/賬號/密碼
canal.instance.master.address
= 127.0 . 0.1 : 3306
canal.instance.dbUsername
= root
canal.instance.dbPassword
= 123456
#
mapping database to topicstrategy
#
format: db1:topic1,db2:topic2,...
canal.instance.topicMapping
= orders:db_test,test:db_test
#
partition strategy
canal.instance.partitionByPrimaryEnable
= true
#
partition by a specific column, only effective when partitionByPrimary = False
#
format: name of the column
canal.instance.partitionColumn
=
#
kafka broker address
canal.brokerAddress
=
|