Cassandra與Kafka的集成

Cassandra和Kafka經常一起用於微服務架構中。本文將介紹幾種Cassandra和Kafka常見的集成模式。

 
簡介
 
如果您的開發團隊樂於接納微服務架構的優點,那麼您就會了解到,Kafka針對不變事件(Immutable Events)的持久性日誌,能夠使微服務以獨立且非同步的方式運行。
 
在某些情況下,微服務需要訪問如Apache Cassandra™ 這樣的數據記錄系統。
 
Apache Kafka展現出的許多分散式系統價值,與Cassandra相同——如可擴展性和高度可用性。
 
因此,Cassandra和Kafka是兩個互補性較強的技術。

 
作為事件結構的Kafka
 
把Kafka看作是微服務之間的事件結構。
 
一個服務從Kafka流中消費事件,並對事件進行計算,要麼產生新的Kafka事件,要麼把數據寫入到Cassandra,要麼兩者兼有。
 
此外,服務也可以使用Cassandra的數據作為事件處理的一部分。

 
作為Kafka數據池的Cassandra
 
Cassandra經常與Kafka一起用於長期存儲和服務應用API。DataStax Kafka連接器可以將數據從Kafka topics自動獲取到Cassandra表中。

 
Kafka與CDC
 
 
反之亦然——在您的集群中啟用CDC(數據捕獲更改),可以讓您從Cassandra中流式傳輸出數據。藉助插件,使用Kafka Connect框架從Cassandra執行數據捕獲更改。目前,我們正在研究如何簡化這一流程。