当前位置: 首页 > news >正文

Canal环境搭建并实现和ES数据同步

作者:田超凡

日期:2025年6月7日

Canal安装,启动端口11111、8082:

安装canal-deployer服务端:

https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz

 

cd  /opt/homebrew/etc

mkdir canal-deployer

tar -zxvf canal.deployer-1.1.7.tar.gz

 

修改配置文件:

vi conf/canal.properties

canal.ip = 127.0.0.1

 

vi example/instance.properties

# 需要同步数据的MySQL地址

canal.instance.master.address=127.0.0.1:3306

canal.instance.master.journal.name=

canal.instance.master.position=

canal.instance.master.timestamp=

canal.instance.master.gtid=

# 用于同步数据的数据库账号

canal.instance.dbUsername=账号

# 用于同步数据的数据库密码

canal.instance.dbPassword=密码

# 数据库连接编码

canal.instance.connectionCharset = UTF-8

# 需要订阅binlog的表过滤正则表达式

canal.instance.filter.regex=.*\\..*

 

启动canal-deployer

到 bin 目录下,执行命令:./startup.sh

日志:logs/canal

 

踩坑:

1 canal-deployer启动报错

canal/logs/canal/canal_stdout.log 报错:

Unrecognized VM option 'AggressiveOpts'Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.

Plain Text

 

解决方案:

修改canal/bin/startup.sh:

移除AggressiveOpts、UseBiasedLocking 等 JDK 21中已经不在支持的配置,重新启动.

 

2 安装canal-adapter客户端:

https://github.com/alibaba/canal/releases/1.1.7/canal.adapter-1.1.7.tar.gz

 

cd  /opt/homebrew/etc

mkdir canal-adapter

tar -zxvf canal.adapter-1.1.7.tar.gz

 

修改配置文件:

vi conf/application.properties

port:8082

踩坑:hosts要配置成:http://127.0.0.1:9200,不然会报错

java.lang.RuntimeException: java.lang.IllegalArgumentException: Illegal character in scheme name at index 0: 127.0.0.1:9200

 

继续修改es8配置文件:

vi conf/es8/mytest_user.yml

dataSourceKey: defaultDS

destination: example

groupId: g1

esMapping:

  _index: nfturbo_users

  _id: _id

  #  upsert: true

  #  pk: id

  sql: "select t.id as _id, t.nick_name as  nick_name, t.state as state,t.telephone as telephone  from users as t"

  #  objFields:

  #    _labels: array:;

  #etlCondition: "where a.c_time>={}"

  commitBatch: 3000  

 

修改bin/start.sh

移除AggressiveOpts、UseBiasedLocking 等 JDK 21中已经不在支持的配置,重新启动.

 

启动canal-adapter客户端:

cd canal-adapter/bin

./startup.sh

日志目录:logs/adapter/adapter.log

踩坑:必须先启动mysql8和es8,否则无法启动canal-deployer和canal-adapter

 

canal-deployer服务端(Canal Server)运行端口:11111

canal-adapter客户端(Canal Client)运行端口:8082

 

 

 

测试同步mysql到es8:

登录Kibana,DevTool:

PUT nfturbo_users

{

  "mappings": {

    "properties": {

      "nickname": {

        "type": "text"

      },

      "telephone": {

        "type": "text"

      },

      "state": {

        "type": "text"

      }

    }

  }

}

 

nfturbo.user表插入一条数据:

INSERT INTO `nfturbo`.`users` (`id`,`gmt_create`,`gmt_modified`,`nick_name`,`password_hash`,`state`,`telephone`,`user_role`) VALUES (14,'2024-04-18 17:47:40','2024-04-18 17:47:42','test11111','c2975f0faec10adca0ecd729c8cbc0aa','INIT','13000000000','CUSTOMER')

 

GET nfturbo_users/_search

{"_source": ["nick_name","telephone","state"],

  "query": {

    "match": {

      "nick_name": "test11111"

    }

  }

}

 

 

DELETE nfturbo_users

相关文章:

  • 分享下量化快速选股和回测的方法
  • MIT 6.S081 Lab10 mmap
  • 智能手表供应链与采购清单(Aurora Watch S1)
  • 基于Python学习《Head First设计模式》第六章 命令模式
  • 第4章——springboot自动配置
  • 【JavaSE】泛型学习笔记
  • 【知识扫盲】分布式系统架构或分布式服务中的管理面,数据面和业务面
  • 【Zephyr 系列 13】BLE Mesh 入门实战:构建基础节点通信与中继组播系统
  • MVC分层架构模式深入剖析
  • Redis介绍和部署
  • Redis 高频知识点及解析
  • 基于51单片机的空气净化器仿真
  • 【网站建设】网站 SEO 中 meta 信息修改全攻略 ✅
  • 策略模式实战:Spring中动态选择商品处理策略的实现
  • 【工具使用】STM32CubeMX-FreeRTOS操作系统-信号标志、互斥锁、信号量篇
  • 线程安全集合
  • 黑马Sting四道练习题
  • 数据库防丢失技术指南
  • 区块链技术概述
  • 链结构与工作量证明7️⃣:用 Go 实现比特币的核心机制
  • 国外做文化的网站/专业黑帽seo推广
  • 推荐聊城做网站的公司/百度关键词排名神器
  • 提供网站制作价格/百度官网地址
  • 真做视频网站/seo关键词分析表
  • 织梦网站后台logo删除/互联网广告投放平台加盟
  • 外包公司做网站价格/网站seo的优化怎么做