docker安装canal入门实战,同步mysql数据到elasticsearch
    		       		warning:
    		            这篇文章距离上次修改已过445天,其中的内容可能已经有所变动。
    		        
        		                
                以下是一个简化的Docker安装Canal并同步MySQL数据到Elasticsearch的实例:
- 创建docker-compose.yml文件:
version: '3'
services:
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    ports:
      - "3306:3306"
 
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - "9200:9200"
    healthcheck:
      test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 5
 
  canal:
    image: canalsh/canal-server:v1.1.6
    environment:
      - canal.destinations=example
      - canal.instance.master.address=mysql:3306
      - canal.instance.dbUsername=root
      - canal.instance.dbPassword=123456
      - canal.instance.filter.regex=.*\\..*
    links:
      - mysql
    depends_on:
      - mysql
    ports:
      - "11111:11111"
    healthcheck:
      test: ["CMD-SHELL", "/bin/sh -c 'curl --silent --fail localhost:11111/actuator/health || exit 1'"]
      interval: 30s
      timeout: 10s
      retries: 5
 
volumes:
  esdata1:- 在含有此docker-compose.yml文件的目录中运行以下命令来启动服务:
docker-compose up -d- 配置Canal以连接到Elasticsearch: - 修改canal服务的环境变量,包括Elasticsearch相关配置。
- 确保Canal实例配置中的canal.mq.type设置为elasticsearch。
- 添加Elasticsearch相关的配置,例如canal.es.host和canal.es.port。
 
- 修改
- 确保MySQL和Elasticsearch的配置是正确的,并且Canal实例的过滤规则是正确的。
以上步骤会启动MySQL、Elasticsearch和Canal服务器,并将Canal配置为从MySQL接收数据变化,然后将这些变化同步到Elasticsearch。
注意:这只是一个简化的示例,实际使用时需要根据具体的数据库、Elasticsearch和Canal版本进行相应的调整。
评论已关闭