国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步

這篇具有很好參考價(jià)值的文章主要介紹了使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

參考
ClientAdapter: Canal的Adapter配置項(xiàng)目
Sync ES:Canal的Adapter中ES同步的配置項(xiàng)
使用 Docker 部署 canal 服務(wù)
docker canal-server canal-adapter mysql
Canal(基于Docker同步mysql數(shù)據(jù)到elasticsearch)
Canal部署過程中的錯誤

0. 環(huán)境介紹

  • Canal 1.1.4
  • Canal Adapter 1.1.4
  • Kibana: 6.8.8
  • ElasticSearch: 6.4.3

由于Canal 1.1.4只能適配 ElasticSearch: 6.4.3,因此使用了上述的版本。
Kibana選擇 6.8.8是因?yàn)樗梢杂弥形??但我沒有配置成功。此外Kibana的6.8可以和ES6.4結(jié)合。其他情況下需要版本一一對應(yīng)

關(guān)于Kibana和ES的版本對應(yīng)以及中文設(shè)置問題,可以參考

  • Kibana 漢化相關(guān)配置 i18n 及版本問題
  • Kibana將語言設(shè)置為中文
  • Elasticsearch和Kibana版本對應(yīng)關(guān)系

0. 前置步驟

dokcer服務(wù)網(wǎng)絡(luò)準(zhǔn)備
參考讓ELK在同一個(gè)docker網(wǎng)絡(luò)下通過名字直接訪問, 首先用docker設(shè)置一個(gè)網(wǎng)絡(luò),以后所有相關(guān)的容器都放到這里。

docker network create mynetwork

ES的內(nèi)存準(zhǔn)備
命令行輸入

sysctl -w vm.max_map_count=262144

1. 安裝Kibana和Elasticsearch

參考我之前的博客Ubuntu服務(wù)器ELK部署與實(shí)踐。
注:不同的版本對應(yīng)的配置方案也需要修改,我的修改有:

Kibana修改
原配置(7.8.0)

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elasticsearch:9200"]
# 操作界面語言設(shè)置為中文
i18n.locale: "zh-CN"

現(xiàn)配置(6.8.8)

server.port: 5601
server.host: "0.0.0.0"
server.basePath: "/kibana" # 這個(gè)是用來配置nginx訪問用的
# server.host: "127.0.0.1"
# 注意看這里的參數(shù)變了
elasticsearch.url: "http://elasticsearch:9200"
# 操作界面語言設(shè)置為中文
# 6.4不支持
# i18n.locale:  "zh-CN"

此外,由于版本變更,相關(guān)的API也發(fā)生了變更,請多多留意
Create index API 7.8.0
Create index 6.4

數(shù)據(jù)來自Kaggle的新聞,因此按照數(shù)據(jù)字段名稱,新建如下字段

PUT news_2
{
	"mappings": {
		"_doc": {
			"properties": {
				"id": {
					"type": "text",
					"index": true
				},
				"title": {
					"type": "text",
					"analyzer": "ik_max_word"
				},
				"_desc": {
					"type": "text",
					"analyzer": "ik_max_word"
				},
				"image": {
					"type": "text",
					"analyzer": "ik_max_word"
				},
				"url": {
					"type": "text",
					"analyzer": "ik_max_word"
				},
				"news_source": {
					"type": "text",
					"analyzer": "ik_max_word"
				},
				"_date": {
					"type": "date"
				}
			}
		}
	}
}

2. 安裝Canal和Canal Adapter

Canal是用來做數(shù)據(jù)庫slave的,他的原理就是讀取數(shù)據(jù)庫的日志文件,實(shí)現(xiàn)實(shí)時(shí)同步(相比logstash的cron表達(dá)式可以更加實(shí)時(shí))。

2.1 修改數(shù)據(jù)庫配置

2.1.1 修改配置

首先新建數(shù)據(jù)庫的docker鏡像

docker run -p 3306:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

接下來去/data/mysql/conf路徑下,新建my.cnf文件,輸入以下內(nèi)容

[mysqld]
#binlog setting
log-bin=mysql-bin  # 開啟logbin
binlog-format=ROW  # binlog日志格式
server-id=1  # mysql主從備份serverId,canal中不能與此相同

docker restart重啟mysql

2.1.2 驗(yàn)證mysql binlog配置

新建新聞表

CREATE SCHEMA MyTest;

use MyTest;

create table News
(
id INT(11),
title VARCHAR(2125),
desc VARCHAR(2125),
image VARCHAR(2125),
url VARCHAR(2125),
source VARCHAR(2125),
date Date
)DEFAULT CHARSET=utf8;

檢查該新聞表的狀態(tài)

mysql -u root -p  // mysql登錄
>show databases;
>use MyTest;  // 開啟數(shù)據(jù)庫
>show variables like 'log_%';
>show variables like 'binlog_format';
>show master status;  // binlog日志文件 mysql-bin.000001
>reset master;  // 重置日志

以下截圖來自https://blog.csdn.net/qq_32836247/article/details/116561732,展示了應(yīng)有的配置結(jié)果
使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch

2.1.3 查看日志文件
cd /var/lib/mysql  // 進(jìn)入日志文件目錄
mysqlbinlog -vv mysql-bin.000001  // row格式查看日志

使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch

2.1.4 用JDBC代碼插入數(shù)據(jù)庫

這個(gè)就自己實(shí)現(xiàn)吧。不用全部插入,因?yàn)锳dapter要基于新的日志和ES同步。

2.2 安裝Canal Server

首先安裝canal-server,復(fù)制配置文件到外面

# 啟動docker
docker pull canal/canal-server:v1.1.4
docker run --name canal-server -id canal/canal-server:v1.1.4

# 復(fù)制配置文件
docker cp canal-server:/home/admin/canal-server/conf/ /data/canal_/canal
docker cp canal-server:/home/admin/canal-server/logs/ /data/canal_/canal

# 刪除并重新啟動
docker stop canal-server && docker rm canal-server

docker run --name canal -p 11111:11111 \
-v /data/canal_/canal/conf/example/instance.properties:/home/admin/canal-server/conf/example/instance.properties \
-v /data/canal_/canal/conf/canal.properties:/home/admin/canal-server/conf/canal.properties \
-v /data/canal_/canal/logs/:/home/admin/canal-server/logs/ \
--network mynetwork \ # 這個(gè)是我“讓ELK在同一個(gè)docker網(wǎng)絡(luò)下通過名字直接訪問”博客中新建的網(wǎng)絡(luò),以后所有127.0.0.1都寫成docker的name就可以
-d canal/canal-server:v1.1.4

修改Server配置文件example/instance.properties
使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch
注意,canal.properties中的destination要和后續(xù)的Canal Adapter保持一致
使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch

驗(yàn)證服務(wù)是否啟動成功

docker exec -it [c_id]/bin/bash
cd canal-server/bin/
./start.sh  // 啟動服務(wù)
cd canal-server/logs/example/
tail -100f example.log  // 查看日志

使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch

2.3 安裝Canal Adapter

# 啟動docker
docker pull slpcat/canal-adapter:v1.1.4
docker run --name canal-adapter -id slpcat/canal-adapter:v1.1.4

# 復(fù)制配置文件
docker cp canal-adapter:/opt/canal-adapter/conf /data/canal_/canal-dapter
docker cp canal-adapter:/opt/canal-adapter/logs /data/canal_/canal-dapter

# 刪除并重新啟動
docker stop canal-adapter && docker rm canal-adapter

docker run --name canal-adapte -p 8081:8081 \
-v /data/canal_/canal-dapter/conf:/opt/canal-adapter/conf \
-v /data/canal_/canal-dapter/logs:/opt/canal-adapter/logs \
--network mynetwork \
-d slpcat/canal-adapter:v1.1.4
修改兩處配置文件
配置文件取消注釋一定要自己手動刪除#,不要用快捷鍵。否則會導(dǎo)致文件格式出問題

配置文件詳解
ClientAdapter: Canal的Adapter配置項(xiàng)目 application.ym(application.yml)
Sync ES:Canal的Adapter中ES同步的配置項(xiàng) (user.yml)

修改配置文件application.yml

使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch
name logger就是在發(fā)生數(shù)據(jù)修改的時(shí)候,直接實(shí)時(shí)更新到log中,如下圖使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch

修改完上述配置,可以看到name為es的canalAdapters被啟動了。因此要去es文件夾下修改,注意以下字段的配置。目前只是能夠運(yùn)行起來,至于業(yè)務(wù)實(shí)際應(yīng)用可能還有待驗(yàn)證。

使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步,docker,mysql,elasticsearch文章來源地址http://www.zghlxwxcb.cn/news/detail-649488.html

到了這里,關(guān)于使用 Docker 部署 canal 服務(wù)實(shí)現(xiàn)MySQL和ES實(shí)時(shí)同步的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Canal —— 一款 MySql 實(shí)時(shí)同步到 ES 的阿里開源神器

    Canal —— 一款 MySql 實(shí)時(shí)同步到 ES 的阿里開源神器

    目錄 一. 前言 二. Canal 簡介和使用場景 2.1. Canal 簡介 2.2. Canal 使用場景 三. Canal Server 設(shè)計(jì) 3.1. 整體設(shè)計(jì) 3.2. EventParser 設(shè)計(jì) 3.3.?CanalLogPositionManager 設(shè)計(jì) 3.4.?CanalHAController 類圖設(shè)計(jì) 3.5.?EventSink 類圖設(shè)計(jì)和擴(kuò)展 3.6.?EventStore 類圖設(shè)計(jì)和擴(kuò)展 3.7.?MetaManager 類圖設(shè)計(jì)和擴(kuò)展 四. Can

    2024年01月25日
    瀏覽(25)
  • MySQL如何實(shí)時(shí)同步數(shù)據(jù)到ES?試試阿里開源的Canal

    MySQL如何實(shí)時(shí)同步數(shù)據(jù)到ES?試試阿里開源的Canal

    前幾天在網(wǎng)上沖浪的時(shí)候發(fā)現(xiàn)了一個(gè)比較成熟的開源中間件——? Canal? 。在了解了它的工作原理和使用場景后,頓時(shí)產(chǎn)生了濃厚的興趣。今天,就讓我們跟隨我的腳步,一起來揭開它神秘的面紗吧。 目錄 前言 簡介? 工作原理? MySQL主備復(fù)制原理 canal 工作原理 Canal架構(gòu)? C

    2024年02月20日
    瀏覽(24)
  • 使用canal+rocketmq實(shí)現(xiàn)將mysql數(shù)據(jù)同步到es

    使用canal+rocketmq實(shí)現(xiàn)將mysql數(shù)據(jù)同步到es

    實(shí)際開發(fā)過程中,經(jīng)常遇到數(shù)據(jù)庫與緩存不一致的問題,造成這種問題的原因有很多,其中緩存數(shù)據(jù)沒有及時(shí)更新、緩存中過期的數(shù)據(jù)沒有及時(shí)更新,導(dǎo)致緩存中存在失效數(shù)據(jù),導(dǎo)致數(shù)據(jù)庫與緩存不一致。而這種問題的出現(xiàn)大部分都是因?yàn)橥窖舆t、緩存失效、過期和錯誤使

    2024年02月11日
    瀏覽(72)
  • canal實(shí)時(shí)同步mysql數(shù)據(jù)到elasticsearch(部署,配置,測試)(一)

    canal實(shí)時(shí)同步mysql數(shù)據(jù)到elasticsearch(部署,配置,測試)(一)

    canal基于MySQL數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi),是阿里開源CDC工具,它可以獲取MySQL binlog數(shù)據(jù)并解析,然后將數(shù)據(jù)變動傳輸給下游?;赾anal,可以實(shí)現(xiàn)從MySQL到其他數(shù)據(jù)庫的實(shí)時(shí)同步 MySQL主備復(fù)制原理 MySQL master 將數(shù)據(jù)變更寫入二進(jìn)制日志( binary log, 其中記錄叫

    2023年04月08日
    瀏覽(25)
  • canal實(shí)現(xiàn)MySQL和ES同步實(shí)踐

    canal實(shí)現(xiàn)MySQL和ES同步實(shí)踐

    canal是阿里開源的數(shù)據(jù)同步工具,基于binlog可以將數(shù)據(jù)庫同步到其他各類數(shù)據(jù)庫中,目標(biāo)數(shù)據(jù)庫支持mysql,postgresql,oracle,redis,MQ,ES等。 MySQL的主從復(fù)制是依賴于binlog,也就是記錄MySQL上所有操作的邏輯日志保存在磁盤上。主從復(fù)制就是將binlog中的數(shù)據(jù)從主庫傳輸?shù)綇膸焐?,一般這

    2024年04月14日
    瀏覽(34)
  • Canal同步Mysql實(shí)時(shí)操作日志至RabbitMQ,并實(shí)現(xiàn)監(jiān)聽及解析處理

    Canal同步Mysql實(shí)時(shí)操作日志至RabbitMQ,并實(shí)現(xiàn)監(jiān)聽及解析處理

    關(guān)于Canal的介紹及原理不在此贅述,可自行查閱。筆者在使用Canal同步Mysql實(shí)時(shí)操作記錄至RabbitMQ的過程中,也翻閱了一些大牛們的文章,可能是我使用的Canal版本與文中版本不一致,出現(xiàn)了一些問題,在此總結(jié)記錄一下可行的方案。 注:本文使用的Canal為 v1.1.7 先查看目標(biāo)數(shù)據(jù)

    2024年04月10日
    瀏覽(48)
  • Springcloud Alibaba 使用Canal將MySql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch

    本篇文章在Springcloud Alibaba使用Canal將Mysql數(shù)據(jù)實(shí)時(shí)同步到Redis保證緩存的一致性-CSDN博客 基礎(chǔ)上使用canal將mysql數(shù)據(jù)實(shí)時(shí)同步到Elasticsearch。 公共包 實(shí)體類Sku @Column注解 用來標(biāo)識實(shí)體類中屬性與數(shù)據(jù)表中字段的對應(yīng)關(guān)系 name 定義了被標(biāo)注字段在數(shù)據(jù)庫表中所對應(yīng)字段的名稱;由

    2024年02月03日
    瀏覽(23)
  • 使用canal同步MySQL5.7到ES中小白配置教程

    使用canal同步MySQL5.7到ES中小白配置教程

    在本篇博客中,我們將深入探討如何使用Canal進(jìn)行MySQL到Elasticsearch (ES) 的數(shù)據(jù)同步。本文將涵蓋Canal的基本概念、安裝過程、配置步驟以及具體的同步操作,旨在幫助開發(fā)者和數(shù)據(jù)工程師理解并實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理。包括:Canal介紹、MySQL同步、Elasticsearch配置、實(shí)時(shí)數(shù)據(jù)同

    2024年04月24日
    瀏覽(22)
  • Springcloud Alibaba使用Canal將Mysql數(shù)據(jù)實(shí)時(shí)同步到Redis保證緩存的一致性

    Springcloud Alibaba使用Canal將Mysql數(shù)據(jù)實(shí)時(shí)同步到Redis保證緩存的一致性

    目錄 ? 1. 背景 2. Windows系統(tǒng)安裝canal 3.Mysql準(zhǔn)備工作 4. 公共依賴包 5. Redis緩存設(shè)計(jì) 6. mall-canal-service ? canal [k?\\\'n?l] ,譯意為水道/管道/溝渠,主要用途是 基于 MySQL 數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi) 。其誕生的背景是早期阿里巴巴因?yàn)楹贾莺兔绹p機(jī)房部署,存

    2024年02月03日
    瀏覽(20)
  • docker環(huán)境安裝mysql、canal、elasticsearch,基于binlog利用canal實(shí)現(xiàn)mysql的數(shù)據(jù)同步到elasticsearch中

    docker環(huán)境安裝mysql、canal、elasticsearch,基于binlog利用canal實(shí)現(xiàn)mysql的數(shù)據(jù)同步到elasticsearch中

    ?? 本文提供的指令完全可以按順序逐一執(zhí)行,已進(jìn)行了多次測試。因此如果你是直接按照我本文寫的指令一條條執(zhí)行的,而非自定義修改過,執(zhí)行應(yīng)當(dāng)是沒有任何問題的。 ?? 本文講述:使用docker環(huán)境安裝mysql、canal、elasticsearch,基于binlog利用canal實(shí)現(xiàn)mysql的數(shù)據(jù)同步到elas

    2024年02月02日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包