kafka connect

498 阅读1分钟

kafka connect distributed 模式

1. 配置connect-distributed.properties

bootstrap.servers=vm01:9092,vm02:9092,vm03:9092
group.id=connect-cluster
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
offset.storage.topic=connect-offsets
offset.storage.replication.factor=2
config.storage.topic=connect-configs
config.storage.replication.factor=2
status.storage.topic=connect-status
status.storage.replication.factor=2
offset.flush.interval.ms=10000
rest.advertised.host.name=vm01
rest.advertised.port=8083
plugin.path=/home/data_center/kafka_2.12-2.5.1/connect

2. 修改内存connect-distributed.sh

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
  export KAFKA_HEAP_OPTS="-Xms1G -Xmx1G"
fi

3. 启动distributed模式

bin/connect-distributed.sh config/connect-distributed.properties 1>/dev/null 2>&1 &
or
bin/connect-distributed.sh -daemon config/connect-distributed.properties

kafka connect rest api

1. 查询当前活动的connectors

curl -X GET http://localhost:8083/connectors | jq

2. 查看

curl -X GET http://localhost:8083/connectors/mysql-source | jq

3. 删除

curl -X DELETE http://localhost:8083/connectors/sqlserver-001

4. 暂停

curl -X PUT http://VM02:8083/connectors/sqlserver-mytable-001/pause

5. 恢复

curl -X put http://VM02:8083/connectors/sqlserver-mytable-001/resume

6. 重启

curl -X POST http://VM02:8083/connectors/sqlserver-mytable-001/restart

7. 获取状态

curl -X GET http://VM02:8083/connectors/sqlserver-mytable-001/status

8. 创建connector(sql server)

curl 'http://localhost:8083/connectors' -X POST -i -H "Content-Type:application/json" -d '
{
	"name": "sqlserver-001",
	"config": {
		"connector.class": "io.debezium.connector.sqlserver.SqlServerConnector",
		"database.hostname": "***",
		"database.port": "1433",
		"database.user": "data_center",
		"database.password": "******",
		"database.dbname": "mydb",
		"database.server.name": "debezium_sqlserver",
		"table.whitelist": "dbo.mytable",
		"database.history.kafka.bootstrap.servers": "vm01:9092,vm02:9092,vm03:9092",
		"database.history.kafka.topic": "dbhistory_sqlserver",
		"snapshot.mode": "initial",
		"snapshot.locking.mode": "none",
		"poll.interval.ms": 1000
	}
}
'

9. 创建connector(mysql)

curl 'http://localhost:8083/connectors' -X POST -i -H "Content-Type:application/json" -d '
{
	"name": "mysql_mydb_student",
	"config": {
		"connector.class": "io.debezium.connector.mysql.MySqlConnector",
		"database.hostname": "vm01",
		"database.port": "3306",
		"database.user": "root",
		"database.password": "123456",
		"database.dbname": "mydb",
		"database.server.name": "mydb_server",
		"table.whitelist": "mydb.student",
		"database.history.kafka.bootstrap.servers": "vm01:9092,vm02:9092,vm03:9092",
		"database.history.kafka.topic": "his_mydb",
		"tasks.max": "2"
	}
}
'