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执行数据捕获更改。目前,我们正在研究如何简化这一流程。