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
繁體地址,請注明出處:http://hk.pswp.cn/news/908663.shtml
英文地址,請注明出處:http://en.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),可以高效處理視頻流,實現快速幀提取、壓縮編碼等關鍵功能。本文將深入介紹如何優化這些流程,提高處理…