MySQL-To-JSON的Kafka生產者

技術小能手發表於2018-11-06

Maxwell 是一個讀取 MySQL binlogs 並將修改行欄位的更新寫入 Kafka, Kinesis, RabbitMQ, Google Cloud Pub/Sub 或 Redis (Pub/Sub or LPUSH) 以作為 JSON 的應用程式。

Maxwell 擁有可對底層進行操作的操作欄(operational bar),可生成一致、易於獲取的更新流,你可以輕鬆“固定”流處理系統的一些優點,而無需通過整個程式碼庫來新增(不可靠)檢測點。 

  • 常見用例包括 ETL、快取構建/到期、指標收集、搜尋索引和服務間通訊。

  • 可在表的初始載入過程中執行 SELECT * from table (bootstrapping)

  • 支援在 master promotion 上的自動位置恢復

  • 為 Kakfa 提供靈活的分割槽方案 —— 按資料庫、表、主鍵或欄位進行

Maxwell 通過充當完整的 mysql 副本來完成所有這些操作,包括用於 create/alter/drop 語句的 SQL 解析器。

示例

mysql> insert into `test`.`maxwell` set id = 1, daemon = `Stanislaw Lem`;
  maxwell: {
    "database": "test",
    "table": "maxwell",
    "type": "insert",
    "ts": 1449786310,
    "xid": 940752,
    "commit": true,
    "data": { "id":1, "daemon": "Stanislaw Lem" }
  }
 mysql> update test.maxwell set daemon = `firebus!  firebus!` where id = 1;
  maxwell: {
    "database": "test",
    "table": "maxwell",
    "type": "update",
    "ts": 1449786341,
    "xid": 940786,
    "commit": true,
    "data": {"id":1, "daemon": "Firebus!  Firebus!"},
    "old":  {"daemon": "Stanislaw Lem"}
  }

本文來自雲棲社群合作伙伴“開源中國”

本文作者:局長

原文連結


相關文章