如何使用cassandra实现更改流?

uqxowvwt  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(319)

我正在运行多个python微服务,它们应该使用cassandra作为它们的数据库。本着微服务的精神,每个人“拥有”自己的数据,但可以自由地将数据发送给任何愿意倾听的人。所有的微服务都通过Kafka相互通信。
例如,我可以有一个叫做 auth 拥有关于用户的私人数据。当用户更新用户名或电子邮件时,需要在 auth -拥有的数据库。但是,还有其他的微服务(例如。 scheduler )谁可以拥有所有用户名的副本。
问题是-什么是最好的方法 auth 通知服务 scheduler 有关数据更改的服务。在mongo,我会使用变更流。

7y4bm7vi

7y4bm7vi1#

cassandra没有像mongo中的“change streams”这样的现成功能。cassandra有changedatacapture(cdc),但是您需要编写一个代码来使用这些更改,在保存副本的所有节点上都会得到相同的更改,并且不会通过ttl收到关于数据过期的通知,等等。
我个人会通过kafka实现所有通信,并使用datastax的kafka连接器将数据提交到不同的数据库/表(它不是开源的,但可以免费与dse和cassandra一起使用)。

相关问题