天天看點

【基于阿裡巴的canal向elasticsearch中同步資料mysql資料的小工具】一個基于阿裡巴巴Canal,實時同

作者:碼農世界

【基于阿裡巴的canal向elasticsearch中同步資料mysql資料的小工具】

一個基于阿裡巴巴Canal,實時同步mysql資料到Elasticsearch的工具。輕量,易于配置,部署簡單,支援資料復原。 使用 Totoro 可以幫助你輕松的将mysql的資料實時同步到Elasticsearch。Totoro是基于阿裡巴巴的canal,是資料庫級别的 監聽,對原有項目沒有任何侵入,是以你無需更改項目中的任何代碼就可以實作實時的資料同步。

Elasticsearch是一個分布式搜尋服務,提供Restful API,底層基于Lucene, 采用多shard的方式保證資料安全,并且提供自動resharding的功能,github等大型的站點也采用Elasticsearch作為其搜尋服務。

對于Elasticsearch,如果要在項目中使用,第一個要解決的問題就是,如何将資料庫中的資料同步到Elasticsearch,下面常見的幾種中方案

- 修改代碼,修改插入資料庫的代碼,同時插入Elasticsearch

- 修改代碼,修改插入資料庫的代碼,同時放入消息隊列,在消息隊列的另一端進行插入Elasticsearch

- 使用 Elasticsearch技術棧的Logstash,編寫sql語句定時執行搜集資料,并插入到Elasticsearch

在上訴方案中,一三都有明顯缺陷,第二種方案是目前采用最多的,但還是會對原有項目代碼有侵入,并且要引入消息隊列。 如果你不想引入消息隊列并且想獲得一個開箱即用的同步中間件,那麼Totoro會令你非常滿意 。

Totoro的方案是,基于阿裡巴巴開源資料庫中間件canal,監聽mysql資料庫,并且在mysql資料庫資料發生變化的時候 發送消息給Totoro,Totoro會将資料同步到Elasticsearch,如果消費出錯支援復原,保證資料被正确消費。

開源位址:網頁連結

#程式員#

#大資料#

#索引#

【基于阿裡巴的canal向elasticsearch中同步資料mysql資料的小工具】一個基于阿裡巴巴Canal,實時同
【基于阿裡巴的canal向elasticsearch中同步資料mysql資料的小工具】一個基于阿裡巴巴Canal,實時同
【基于阿裡巴的canal向elasticsearch中同步資料mysql資料的小工具】一個基于阿裡巴巴Canal,實時同

繼續閱讀