您正在查看过时的Debezium版本的文档。开云体育官方注册网址
如果您想查看本页最新的稳定版本,请前往在这里

在OpenShift开云体育官方注册网址上部署Debezium

下面描述如何在Red Hat上为变更数据捕获设置Debezium连接器开云体育官方注册网址OpenShift集装箱平台。

这些说明已使用Minishift工具-允许你在你的机器上本地运行一个节点OpenShift实例。

你可以在我们的网站上找到一个使用minisshift设置的完整示例实例库

如果你想更快地开始,试试开云体育官方注册网址Debezium在线学习场景.它为您启动了一个OpenShift集群,允许您在几分钟内在浏览器中使用Debezium迈出第一步。开云体育官方注册网址

开云体育官方注册网址Debezium部署

为了在OpenShift上设置Kafka和Kafka Connect,一组由Strimzi项目可以使用,它提供“Kafka即服务”。它由企业级配置文件和镜像组成,将Kafka引入OpenShift。

首先,我们将Kafka代理和Kafka Connect的操作符和模板安装到OpenShift项目中:

export STRIMZI_VERSION=0.13.0 git clone -b $STRIMZI_VERSION https://github.com/strimzi/strimzi-kafka-operator cd strimzi-kafka-operator #我们需要创建安全对象作为安装的一部分,因此需要切换到admin用户oc login -u system:admin oc create -f install/cluster-operator && oc create -f examples/templates/cluster-operator

接下来,我们将部署一个Kafka代理集群和一个Kafka Connect集群,然后创建一个安装了Debezium连接器的Kafka Connect映像:开云体育官方注册网址

#部署一个短暂的单一实例卡夫卡代理oc过程strimzi-ephemeral - p CLUSTER_NAME =代理- p ZOOKEEPER_NODE_COUNT = 1 - p KAFKA_NODE_COUNT = 1 - p KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR = 1 - p KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR = 1 | oc - f - #应用部署单个实例的卡夫卡与没有插件安装oc过程strimzi-connect-s2i - p CLUSTER_NAME = debezium - p KAFKA_CONNECT_BOOTSTRAP_SERVERS = broker-kafka-bootstrap: 9092 - p开云体育官方注册网址KAFKA_CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1 -p KAFKA_CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1 -p KAFKA_CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1 -p KAFKA_CONNECT_VALUE_CONVERTER_SCHEMAS_ENABLE=false -p KAFKA_CONNECT_KEY_CONVERTER_SCHEMAS_ENABLE=false | oc apply -f - #构建Debeziu开云体育官方注册网址m镜像导出DEBEZIUM_VERSION=1.0.3。最后的mkdir -p plugins && cd plugins && \ for PLUGIN in {mongodb,mysql,postgres};do \ curl http://central.maven.org/maven2/io/开云体育官方注册网址debezium/debezium-connector-$PLUGIN/$DEBEZIUM_VERSION/debezium-connector-$PLUGIN-$DEBEZIUM_VERSION-plugin.tar.gz | tar xz;\ done && \ oc start-build 开云体育官方注册网址debezum -connect——from-dir=。——跟随&& \ CD ..&& rm -rf插件

一段时间后,所有部件都应该启动并运行:

get pods NAME READY STATUS重启AGE broker-entity-operator-5fb7bc8b9b-r86nz 3/3运行1 4m broker-kafka-0 2/2运行0 4m broker-zookeeper-0 2/2运行0 5m debezu -connect-3-4sdjr 1/1运行0 1开云体育官方注册网址m strimzi-cluster-operator-d77476b8f-rblqf 1/1运行0 5m

或者,您可以转到OpenShift Web控制台的“Pods”视图(https://myhost:8443/console/project/myproject/browse/pods)以确认所有吊舱已启动并运行:

openshift豆荚

验证部署结果

方法验证部署是否正确开云体育官方注册网址Debezium教程在OpenShift环境中。

首先,我们需要启动一个MySQL服务器实例,其中包含一些示例表:

#配置数据库证书oc set env dc/ MySQL MYSQL_ROOT_PASSWORD=debezium MYSQ开云体育官方注册网址L_USER=mysqluser MYSQL_PASSWORD=mysqlpw开云体育电动老虎机

一个带有MySQL服务器的新pod应该启动并运行:

oc get pods NAME READY STATUS重启年龄…mysql-1-4503l 1/1 Running 0 2s mysql-1-deploy 1/1 Running 0 4s…

然后我们要注册Debezium MySQL连接器来运行部署的MySQ开云体育官方注册网址L实例:

c . exec -i -c kafka broker-kafka-0——curl - x POST \ - h "Accept:application/json" \ - h "Content-Type:application/json" \ http:开云体育官方注册网址//debezium-connect-api:8083/connectors -d @- <<'EOF' {"name": "inventory-connector", "config": {"connector.class": "io. debezim .connector.mysql. mysqlconnector ", "任务。Max ": "1", 开云体育电动老虎机"数据库。主机名:“mysql”,“数据库”。开云体育电动老虎机端口:“3306”,“数据库”。开云体育电动老虎机用户":"deb开云体育官方注册网址ez开云体育电动老虎机ium", "数据库"。密码":"dbz", "databas开云体育电动老虎机e.server. "Id ": "184054", 开云体育电动老虎机"database.server.name": "dbserver1", "database. name"。白名单":"inventory", "databas开云体育电动老虎机e.history.kafka.bootstrap. "Servers ": "broker-kafka-bootstrap:9092", 开云体育电动老虎机"database.history.kafka. kafka. "主题:“模式变化。库存"}}EOF

Kafka Connect的日志文件应该包含关于初始快照执行的消息:

Oc logs $(Oc get pods -o name -l strimzi.io/name=开云体育官方注册网址debezium-connect)

的变化事件客户表中对应的Kafka主题:

Oc exec -it broker-kafka-0——/opt/kafka/bin/kafka-console-consumer.sh \——bootstrap-server localhost:9092 \——from-beginning \——属性打印。Key =true \——topic dbserver1.inventory.customers

你应该会看到如下输出(为了便于阅读,进行了格式化):

#消息1 {"id": 1001} #消息1值{"前":null,后":{"id": 1001, "first_name": "Sally", "last_name": "Thomas", "email": "sally.thomas@acme.com"}, "source": {"name": "dbserver1", "server_id": 0, "ts_sec": 0, "gtid": null, "file": "mysql-bin "。000003", "pos": 154, "row": 0, "snapshot": true, "thread": null, "db": "inventory", "table": "customers"}, "op": "c", "ts_ms": 1509530901446} #消息2密钥{"id": 1002} #消息2值{"before": null, "after": {"id": 1002, "first_name": "George", "last_name": "Bailey", "email": "gbailey@foobar.com"}, "source": {"name": "dbserver1", "server_id": 0, "ts_sec": 0, "gtid": null, "file": "mysql-bin "。000003”、“pos”:154年,“行”:0,“快照”:真的,“线程”:空,“分贝”:“库存”、“表”:“客户”},“人事处”:“c”、“ts_ms”:1509530901446}…

中的一些记录客户数据库表:开云体育电动老虎机

\——bash -c 'mysql -u $MYSQL_USER -p$MYSQL_PASSWORD inventory' #例如,执行UPDATE customers SET email="sally.thomas@example.com" WHERE ID = 1001;

您现在应该在之前启动的消费者中看到其他更改消息。

如果您有任何关于在OpenShift上运行Debezium的问题或要求,请通过我们的开云体育官方注册网址用户组或者在Debeziu开云体育官方注册网址m开发人员的聊天