• 使用Docker部署debezium来监控MySQL数据库


    启动debezium前需要启动MySQL、Zookeeper、Kafak服务
    这边演示的,已经把三个服务启动了

    ip分别为:

    主机名IP地址
    zookeeper1192.168.8.101
    zookeeper2192.168.8.102
    zookeeper3192.168.8.103
    mysql192.168.8.104
    kafka1192.168.8.105
    kafka2192.168.8.106
    kafka3192.168.8.107

    启动debezium

    这里下载debezium/connector对应版本的镜像包来监控MySQL数据库

    下载镜像包

    docker pull debezium/connector:1.7.1.Final
    
    • 1

    运行镜像

    本来:参考

    docker run -it --rm --name connect -p 8083:8083 \
    -e GROUP_ID=1 \
    -e CONFIG_STORAGE_TOPIC=my_connect_configs \
    -e OFFSET_STORAGE_TOPIC=my_connect_offsets \
    -e STATUS_STORAGE_TOPIC=my_connect_statuses \
    --link kafka:kafka --link mysql:mysql \
    quay.io/debezium/connect:2.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    命令解析:

    • --name connect:指定启动的容器名称
    • -p 8083:8083:将容器中的8083端映射到Docker主机上的相同端口。这使得容器外的应用程序可以使用Kafka connect
      REST API来设置和管理新的容器实例
    • -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses: 设置镜像所需的环境变量
    • -link kafka:kafka --link mysgl:mysql :将容器链接到正在运行的KafkaMysQL容器。

    docker run debezium连接外部的kafka:

    docker run -it --rm \
    -e GROUP_ID=<your-group-id> \
    -e CONFIG_STORAGE_TOPIC=<your-config-storage-topic> \
    -e OFFSET_STORAGE_TOPIC=<your-offset-storage-topic> \
    -e BOOTSTRAP_SERVERS=<your-kafka-bootstrap-servers> \
    -e KAFKA_CONNECT_CLUSTER=<your-kafka-connect-cluster> \
    debezium/connect:<tag>
    
    请替换以下占位符:
    <your-group-id>: Debezium连接器的群组ID<your-config-storage-topic>: 存储连接器配置的主题。
    <your-offset-storage-topic>: 存储连接器偏移量的主题。
    <your-kafka-bootstrap-servers>: Kafka集群的引导服务器地址,例如kafka1:9092,kafka2:9092<your-kafka-connect-cluster>: Kafka Connect集群的URL<tag>: Debezium Docker镜像的版本标签。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    docker run命令连接外部的MySQL:

    docker run --rm \
    -e MYSQL_HOST=外部MySQL服务的IP地址 \
    -e MYSQL_PORT=3306 \
    -e MYSQL_USER=用户名 \
    -e MYSQL_PASSWORD=密码 \
    -e MYSQL_DB=数据库名称 \
    镜像名称
    
    在这个命令中,MYSQL_HOSTMYSQL_PORTMYSQL_USERMYSQL_PASSWORDMYSQL_DB环境变量分别设置为连接到外部MySQL服务所需的信息。镜像名称是你想要运行的Docker镜像的名称。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    实际:

    docker run -it --rm --name connect -p 8083:8083 \
    -e GROUP_ID=1 \
    -e CONFIG_STORAGE_TOPIC=my_connect_configs \
    -e OFFSET_STORAGE_TOPIC=my_connect_offsets \
    -e STATUS_STORAGE_TOPIC=my_connect_statuses \
    -e MYSQL_HOST=192.168.8.104 \
    -e MYSQL_PORT=3306 \
    -e MYSQL_USER=root \
    -e MYSQL_PASSWORD=root \
    -e MYSQL_DB=atguigu2022 \
    -e BOOTSTRAP_SERVERS=192.168.8.105:9092,192.168.8.106:9092,192.168.8.107:9092 \
    debezium/connect:1.7.1.Final
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    验证:参考

  • 相关阅读:
    2020年高教社杯全国大学生数学建模C题中小微企业信贷决策(Matlab代码)
    Apache Hadoop(一)
    Windows启动谷歌浏览器Chrome失败(应用程序无法启动,因为应用程序的并行配置不正确)解决方法
    如何找到‘.‘ is not recognized as an internal or external command的根本原因和解决方案
    Oozie 集成 Hive
    NSS [西湖论剑 2022]real_ez_node
    使用ABAP2XLSX操作EXCEL
    从使用的角度看 ByConity 和 ClickHouse 的差异
    力扣:盛最多水的容器
    【DaVinci Developer工具实战】03 -导入xml文件
  • 原文地址:https://blog.csdn.net/weixin_46048207/article/details/136561239