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: 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 users

{

  "mappings": {

    "properties": {

      "nickname": {

        "type": "text"

      },

      "telephone": {

        "type": "text"

      },

      "state": {

        "type": "text"

      }

    }

  }

}

 

user表插入一条数据:

INSERT INTO `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 users/_search

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

  "query": {

    "match": {

      "nick_name": "test11111"

    }

  }

}

 

 

DELETE users

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32使用土壤湿度传感器

1.1 介绍: 土壤湿度传感器是一种传感装置,主要用于检测土壤湿度的大小,并广泛应用于汽车自动刮水系统、智能灯光系统和智能天窗系统等。传感器采用优质FR-04双料,大面积5.0 * 4.0厘米,镀镍处理面。 它具有抗氧化&…

锁的艺术:深入浅出讲解乐观锁与悲观锁

在多线程和分布式系统中,数据一致性是一个核心问题。锁机制作为解决并发冲突的重要手段,被广泛应用于各种场景。乐观锁和悲观锁是两种常见的锁策略,它们在设计理念、实现方式和适用场景上各有特点。本文将深入探讨乐观锁和悲观锁的原理、实现…

Jinja2深度解析与应用指南

1. 概念与用途 1.1 核心概念 Jinja2是Python生态中功能强大的模板引擎,采用逻辑与表现分离的设计思想: 模板:包含静态内容和动态占位符的文本文件(.j2后缀)渲染:将模板与数据结合生成最终文本的过程上下…

Ubuntu20.04中 Redis 的安装和配置

Ubuntu20.04 中 Redis 的安装和配置 Ubuntu 安装 MySQL 及其配置 1. Redis 的安装 更新系统包列表并安装 Redis : # 更新包管理工具 sudo apt update# -y:自动确认所有提示(非交互式安装) sudo apt install -y redis-server测…

Sklearn 机器学习 缺失值处理 填充数据列的缺失值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 💡使用 Scikit-learn 处理数据缺失值的完整指南 在机器学习项目中,数据缺失是不可避…

Unity中如何播放视频

1.创建一个原始图像并调整布局平铺整个画布 2.创建自定义纹理并调整自定义纹理大小 3.添加视频播放组件 4.将准备好的视频素材拖入到视频剪辑中 5.将自定义纹理拖入到目标纹理中 6.将自定义纹理拖入到原始图像的纹理中 最后运行游戏,即可播放视频 总结:

Spring通用类型转换的实现原理

Spring通用类型转换的实现原理 设计思路实现逻辑ConversionService&#xff1a;类型转换服务入口ConverterRegister&#xff1a;转换器注册接口GenericConversionService1. Map<ConvertiblePair, GenericConverter> converters2. canConvert() 与 convert()&#xff1a;服…

红黑树完全指南:为何工程都用它?原理、实现、场景、误区全解析

红黑树完全指南&#xff1a;为何工程都用它&#xff1f;原理、实现、场景、误区全解析 作者&#xff1a;星之辰 标签&#xff1a;#红黑树 #平衡二叉查找树 #工程实践 #数据结构 #面试宝典 引子&#xff1a;工程师的“性能焦虑”与树的进化史 你以为树只是算法题里的配角&#…

阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库

阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库 最近帮朋友 完成一些运维工作 &#xff0c;这里记录一下。 文章目录 阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库最近帮朋友 完成一些运维工作 &#xff0c;这里记录一下。 阿里云 RDS MySQL 5.7 添加白名单1. 登录…

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…

分布式互斥算法

1. 概述&#xff1a;什么是分布式互斥 假设有两个小孩想玩同一个玩具&#xff08;临界资源&#xff09;&#xff0c;但玩具只有一个&#xff0c;必须保证一次只有一个人能够玩。当一个小孩在玩时&#xff0c;另一个小孩只能原地等待&#xff0c;直到玩完才能轮到自己。这就是 …

[创业之路-410]:经济学 - 国富论的核心思想和观点,以及对创业者的启发

一、国富论的核心思想和观点 《国富论》全称为《国民财富的性质和原因的研究》&#xff0c;由英国经济学家亚当斯密于1776年出版&#xff0c;是经济学领域的经典之作&#xff0c;其核心思想和观点对现代经济学的发展产生了深远影响&#xff0c;具体如下&#xff1a; 劳动价值…

Tavily 技术详解:为大模型提供实时搜索增强的利器

目录 &#x1f680; Tavily 技术详解&#xff1a;为大模型提供实时搜索增强的利器 &#x1f9e9; 为什么需要 Tavily&#xff1f; &#x1f50d; Tavily 是什么&#xff1f; 核心特性&#xff1a; &#x1f4e6; Tavily 在 RAG 架构中的位置 &#x1f9ea; 示例&#xff…

欣佰特科技亮相2025张江具身智能开发者大会:呈现人形机器人全链条解决方案

5月29日 &#xff0c;2025年张江具身智能开发者大会在上海落下帷幕。欣佰特科技作为专注人形机器人与具身智能领域的创新企业&#xff0c;携一系列前沿产品与解决方案参展&#xff0c;与全球行业专家、企业共同探讨技术落地路径&#xff0c;展现其在具身智能领域的技术积累与场…

@Prometheus 监控-MySQL (Mysqld Exporter)

文章目录 **Prometheus 监控 MySQL ****1. 目标****2. 环境准备****2.1 所需组件****2.2 权限要求** **3. 部署 mysqld_exporter****3.1 下载与安装****3.2 创建配置文件****3.3 创建 Systemd 服务****3.4 验证 Exporter** **4. 配置 Prometheus****4.1 添加 Job 到 prometheus…

MCP Resource模块详解

MCP Resource模块详解 摘要 MCP Resource模块是模型上下文协议的核心组件&#xff0c;通过标准化URI接口为AI模型提供安全可控的只读数据访问能力。其核心设计包括数据隔离架构和客户端驱动的访问控制&#xff0c;支持文本/二进制编码格式&#xff0c;适用于配置文件读取、数据…

Docker 容器化基础:镜像、容器与仓库的本质解析

Docker 概念与容器化技术 Docker 是一种容器化平台&#xff0c;能够将应用程序及其依赖项打包成一个容器&#xff0c;确保在任何环境中都能一致运行。容器化技术通过操作系统级别的虚拟化&#xff0c;为应用程序提供了一个独立的运行环境。 容器化技术的核心优势 一致性&…

解决SQL Server SQL语句性能问题(9)——SQL语句改写(2)

9.4.3. update语句改写 与Oracle类似,SQL Server中,update语句被用户相关技术人员广泛应用于现实日常工作中。但是,有些情况下,尤其是海量数据场景中,update语句也许会带来性能方面的严重问题或极大隐患。因此,为了解决和消除update语句导致的性能问题或隐患,我们将需对…

Unity VR/MR开发-VR/开发SDK选型对比分析

视频讲解链接&#xff1a; 【XR马斯维】Unity开发VR/MR用哪些SDK&#xff1f;【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…