• 使用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

    验证:参考

  • 相关阅读:
    Python 1-04 循环语句
    爱上开源之DockerUI-如何实现Web端的Xshell终端模拟器
    Linux下python安装与pip常用命令
    【李宏毅机器学习2021】Task05 网络设计的技巧
    Unity拓展编辑器 一键导出图集工具
    Java学习02——关键字、字面量、变量
    VKL076-19*4点 超低功耗抗干扰LCD液晶段码显示屏驱动控制电路(IC/芯片),超低工作电流约7.5微安,多用于仪器仪表类,可提供FAE技术支持
    2022-8-31 第七小组 学习日记 (day55)JSP
    python列出本地文件路径
    LeetCode 0216.组合总和 III:回溯(剪枝) OR 二进制枚举
  • 原文地址:https://blog.csdn.net/weixin_46048207/article/details/136561239