以下是這些技術(shù)如何協(xié)同工作:
數(shù)據(jù)管道架構(gòu):
MySQL: 結(jié)構(gòu)化數(shù)據(jù)的主要來源。
TiDB: 兼容 MySQL 的分布式 SQL 數(shù)據(jù)庫,用于可擴(kuò)展性和高可用性。
Kafka: 用于實(shí)時(shí)數(shù)據(jù)流的消息系統(tǒng)。
Logstash: 數(shù)據(jù)處理管道工具,從各種來源攝取數(shù)據(jù)并將其發(fā)送到各個(gè)目的地。
Redis: 緩存層,用于快速訪問經(jīng)常訪問的數(shù)據(jù)。
Elasticsearch: 用于查詢大量數(shù)據(jù)的搜索和分析引擎。
CloudCanal: 數(shù)據(jù)集成工具,用于將 MySQL 等各種來源的數(shù)據(jù)同步到 TiDB、Kafka、Redis 和 Elasticsearch。
工作流程詳情:
1.數(shù)據(jù)攝取:
應(yīng)用程序?qū)?shù)據(jù)保存在MySQL中。
CloudCanal 用于將數(shù)據(jù)從 MySQL 同步到 TiDB 和 Kafka。
2.數(shù)據(jù)流和處理:
卡夫卡:
Kafka 通過 CloudCanal 從 MySQL 獲取數(shù)據(jù)并將其廣播到各個(gè)主題。
主題包含可由各種消費(fèi)者處理的數(shù)據(jù)事件流。
Logstash:
Logstash 充當(dāng) Kafka 消費(fèi)者,處理來自 Kafka 的數(shù)據(jù),并將其發(fā)送到各種輸出,例如 Elasticsearch 和 Redis。
3.數(shù)據(jù)存儲(chǔ)和檢索:
TiDB:
TiDB 作為一個(gè)可擴(kuò)展且高度可用的數(shù)據(jù)庫解決方案,可以處理大量數(shù)據(jù)。
TiDB 兼容 MySQL,使得從 MySQL 的集成和遷移變得簡(jiǎn)單。
Redis:
Redis 用作來自 MySQL 的頻繁訪問數(shù)據(jù)或來自 Kafka 的已處理事件的緩存層。
應(yīng)用程序可以先查詢Redis,再查詢MySQL,以加快數(shù)據(jù)檢索速度。
Elasticsearch:
Logstash 可以從 Kafka 獲取數(shù)據(jù)并將其發(fā)送到 Elasticsearch。
Elasticsearch 對(duì)數(shù)據(jù)建立索引,以便快速搜索和分析。
應(yīng)用程序可以查詢 Elasticsearch 以獲得高級(jí)搜索功能和實(shí)時(shí)分析。
數(shù)據(jù)流示例:
MySQL 中的數(shù)據(jù)輸入:
用戶向 MySQL 數(shù)據(jù)庫插入一條新記錄。
CloudCanal 監(jiān)控 MySQL 中的變化并將事件發(fā)送到 TiDB 和 Kafka 主題。
實(shí)時(shí)處理:
Kafka 將事件廣播到一個(gè)主題。
Logstash 充當(dāng) Kafka 消費(fèi)者,處理事件,并將解析后的數(shù)據(jù)發(fā)送到 Elasticsearch 進(jìn)行索引。
同時(shí),Redis 也會(huì)更新以緩存新數(shù)據(jù)。
數(shù)據(jù)訪問:
應(yīng)用程序檢查 Redis 緩存中的數(shù)據(jù)。
如果緩存中沒有數(shù)據(jù),則查詢 MySQL 或 TiDB。
對(duì)于復(fù)雜的查詢和分析,應(yīng)用程序會(huì)查詢 Elasticsearch。
這只是我的筆記。 CTTO






