我有一个用于注册用户(SSO(的微服务和40多个使用SSO用户的微服务(所有微服务都在您的数据库中有用户数据的部分副本,如用户名、电子邮件、电话、姓名等(。今天,我们已经使用webhook来同步数据。现在我们正在研究如何与卡夫卡一起运行。问题是:我有40多个微服务,我需要为每个微服务创建一个主题,或者可以创建一个话题"用户";所有的微服务都从中读取了变化?如果我能创建一个主题,如何保证一个微服务不能读取相同的数据2次或更多次?
如果需要,知道我们使用的编程语言是python
需要为每个微服务创建一个主题
不清楚为什么你认为这是必要的
可以创建一个主题"用户";所有微服务都从这个中读取更改
当然。或者,仅";一个服务";如下面所建议的,以创建用户的KTable。
如何保证一个微服务不能读取相同的数据2次或更多次
您可以为每个服务使用唯一的group.id
,并且您需要启用适当的设置来启用EOS语义,因为默认情况下Kafka只能提供至少一次交付,这意味着您可以获得数据"2或更多";次。。。
然而,更好的方法是使用交互式查询(或Python用户的kSQLDBRESTneneneba API(来创建CQRS模式,而不是使用;每个服务的数据库";方法
或者KafkaConnect也可以用来填充那些部分数据库。