日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
爺青回,Canal1.1.6來了,幾個重要特性和bug修復(fù)

剛剛在群里看到消息說,時隔一年,canal 1.1.6正式release了,趕緊上去看看有什么新特性。

(居然才發(fā)布了6個小時,前排圍觀)

一、什么是canal

canal [k?'n?l],譯意為水道/管道/溝渠,主要用途是基于 MySQL 數(shù)據(jù)庫增量日志解析,提供增量數(shù)據(jù) 訂閱 和 消費。應(yīng)該是阿里云DTS(Data Transfer Service)的開源版本。

如果想了解更多,可以上github上看官方文檔,或者我之前寫過的系列基于canal 1.1.4版本的入門文檔。

二、重要新特性

我們現(xiàn)在生產(chǎn)用的還是1.1.4版本,用得還算穩(wěn)定,沒有什么特別大的bug。

這次,趁著升級了兩個版本,看看1.1.5和1.1.6版本有什么新特性可以值得升級引入。

1、MQ發(fā)送優(yōu)化

重點優(yōu)化MQ發(fā)送的性能,單topic最高峰值可支持3~8萬的rps,接近數(shù)量級上的性能提升

這是1.1.5中的重要特性優(yōu)化。

為什么canal需要搭配MQ使用,甚至重點優(yōu)化MQ的投遞性能呢?

主要原因是 canal + MQ 可以打造強大的異構(gòu)存儲體系。

canal訂閱binlog后有兩種模式,一種是直接投遞到一種介質(zhì),如mysql,一種是投遞到MQ然后自定義消費。

如果采用投遞到MQ的模式,那么我們就可以利用MQ進行一份消息多端消費(避免重復(fù)拉取binlog對MySQL造成影響),用于構(gòu)建二級索引ES或者構(gòu)建緩存Redis等等。

另一方面,投遞mq以后,對于消息的回溯、監(jiān)控都能提供更好的途徑。

總的來說,canal這個特性優(yōu)化給 canal + MQ 的模式帶來了更加強大的支持。

2、MQ發(fā)送特性支持

新增rabbitmQ的MQ發(fā)送支持 #2156。

支持不同topic設(shè)置不同的分區(qū)數(shù) #2173。

rocketMQ新增tag屬性的定義 #3438。

參數(shù)配置支持env環(huán)境變量 #3450。

這是1.1.5中的一個小優(yōu)化,但是我覺得非常重要。

比如rocketMQ新增tag屬性的定義。實際上在我們的測試環(huán)境,就非常需要這個特性。

我們使用rocketMQ的tag做路由,如果業(yè)務(wù)方自行生產(chǎn)和消費,可以完全根據(jù)tag進行路由區(qū)分。而從canal訂閱的數(shù)據(jù)庫變更,1.1.4版本無法直接給消息打tag,業(yè)務(wù)消費就無法通過tag進行路由。

現(xiàn)在這個特性的優(yōu)化,正好可以解決這個問題。

3、新增Puslar MQ支持

這是1.1.6中的一個小優(yōu)化,還是非常與時俱進的。

目前的云原生消息隊列Puslar MQ,憑借存儲和計算分離的架構(gòu)在云原生體系下如日中天,而canal就在最新版本支持了對Puslar MQ的投遞,手動點贊。

三、重要bug修復(fù)

1、修復(fù)gtid模式下位點持久不更新的問題

這是1.1.5中修復(fù)的bug。

GTID又叫全局事務(wù)ID(Global Transaction ID),是一個已提交事務(wù)的編號,并且是一個全局唯一的編號。MySQL5.6版本之后在主從復(fù)制類型上新增了GTID復(fù)制。

為什么要引入這個東西呢?

  • GTID使用master_auto_position=1代替了基于binlog和position號的主從復(fù)制搭建方式,更便于主從復(fù)制的搭建。
  • GTID可以知道事務(wù)在最開始是在哪個實例上提交的。
  • GTID方便實現(xiàn)主從之間的failover,再也不用不斷地去找position和binlog 了。

為什么我特別關(guān)注到這個bug的修復(fù)呢?

因為我在2020年對canal 1.1.4進行poc的時候,就發(fā)現(xiàn)這個bug了,當時還吐槽了一波,233333。

一晃兩年過去了,沒想到在1.1.5中已經(jīng)修復(fù)了,手動點贊。

2、修復(fù)RDB同步下的關(guān)鍵字引起的同步報錯

這是1.1.6中修復(fù)的bug。

對于這個bug,也是有點記憶猶新。

當時在莫干山度假,突然早上八點收到線上警報,發(fā)現(xiàn)數(shù)據(jù)同步出現(xiàn)異常。

好在隨身帶了電腦(程序員出遠門必備,sigh~),經(jīng)過排查后發(fā)現(xiàn),就是一個表結(jié)構(gòu)變更引入的關(guān)鍵字導(dǎo)致了同步異常。

往事不堪回首。。。

四、總結(jié)

這里簡單介紹了幾個對我們生產(chǎn)中比較重要的優(yōu)化和修復(fù),具體更多內(nèi)容大家可以直接去github上看release note。

總的來說,1.1.5和1.1.6都做了非常多的bug修復(fù)和特性優(yōu)化,還是非常值得升級的。


網(wǎng)站欄目:爺青回,Canal1.1.6來了,幾個重要特性和bug修復(fù)
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/cdsedgh.html