Cassandra与Kafka的集成
Cassandra和Kafka经常一起用于微服务架构中。本文将介绍几种Cassandra和Kafka常见的集成模式。
简介
![](https://pic3.zhimg.com/80/v2-971adf86b630a116d2322260dd810086_720w.png)
如果您的开发团队乐于接纳微服务架构的优点,那么您就会了解到,Kafka针对不变事件(Immutable Events)的持久性日志,能够使微服务以独立且异步的方式运行。
在某些情况下,微服务需要访问如Apache Cassandra™ 这样的数据记录系统。
Apache Kafka展现出的许多分布式系统价值,与Cassandra相同——如可扩展性和高度可用性。
因此,Cassandra和Kafka是两个互补性较强的技术。
作为事件结构的Kafka
![](https://pic1.zhimg.com/80/v2-bd0dbb5ed34a7e644a8aa8081739015f_720w.png)
把Kafka看作是微服务之间的事件结构。
一个服务从Kafka流中消费事件,并对事件进行计算,要么产生新的Kafka事件,要么把数据写入到Cassandra,要么两者兼有。
此外,服务也可以使用Cassandra的数据作为事件处理的一部分。
作为Kafka数据池的Cassandra
![](https://pic2.zhimg.com/80/v2-60ffd096d7647ed31e46d2e847bc478c_720w.png)
Cassandra经常与Kafka一起用于长期存储和服务应用API。DataStax Kafka连接器可以将数据从Kafka topics自动获取到Cassandra表中。
Kafka与CDC
![](https://pic4.zhimg.com/80/v2-ba5958bcff5d7fa66bde39f5854b4cf1_720w.png)
反之亦然——在您的集群中启用CDC(数据捕获更改),可以让您从Cassandra中流式传输出数据。借助插件,使用Kafka Connect框架从Cassandra执行数据捕获更改。目前,我们正在研究如何简化这一流程。