java監(jiān)聽(tīng)mysql_Java 中能實(shí)現(xiàn)監(jiān)聽(tīng)數(shù)據(jù)庫(kù)嗎?
最近也在看這個(gè)。好像通過(guò)CDC實(shí)現(xiàn)對(duì)binlog的監(jiān)控,然后實(shí)時(shí)進(jìn)行數(shù)據(jù)傳輸或者更改。占個(gè)坑,等搞好這一塊,有時(shí)間來(lái)回答
好,經(jīng)過(guò)了一段時(shí)間的調(diào)研以及測(cè)試,我現(xiàn)在來(lái)回答一下這個(gè)問(wèn)題。
通過(guò)CDC(catch data capture)模式可以實(shí)現(xiàn)對(duì)Java數(shù)據(jù)庫(kù)的監(jiān)聽(tīng)。
現(xiàn)在市面上有這么幾種主流的方式:
1.Maxwell,這個(gè)框架是基于kafka的,然后通過(guò)修改MySQL配置文件可以獲取其二進(jìn)制日志文件,然后通過(guò)producer/consumer機(jī)制可以實(shí)現(xiàn)對(duì)biolog(二進(jìn)制文件)的解析,并輸出至kafka。這個(gè)的缺點(diǎn)是主要面向MySQL至不同中間管道的輸出,而不是各種數(shù)據(jù)庫(kù)至中間管道的輸出。
2.Debezium,這個(gè)框架大概原理上和上面的一致,不同點(diǎn)在于:它是基于confluent platform下的kafka connect,算是數(shù)據(jù)采集的一種。同時(shí)kafka connect前景蠻不錯(cuò),比f(wàn)lume,sqoop好很多。而且現(xiàn)在這個(gè)框架不僅僅有MySQL的采集,還有其他的,例如orale,progressSQL等。
3.canal,這個(gè)是阿里出來(lái)一個(gè)框架,通過(guò)偽裝可以獲取MySQL的二進(jìn)制文件,但是它有個(gè)缺點(diǎn)是需要使用自己的消費(fèi)端去消費(fèi)解析后的數(shù)據(jù)。不過(guò)這個(gè)很成熟,而且說(shuō)明文件也是中文的,很好理解。
以上,歡迎指正討論。后續(xù)更補(bǔ)。
————————————————
版權(quán)聲明:本文為CSDN博主「詩(shī)太濃」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_32672471/article/details/113170313