Kafka架构:将用户数据从单点登录同步到多个微服务

piv4azn7  于 2022-09-21  发布在  Kafka
关注(0)|答案(1)|浏览(154)

我有一个用于注册用户(SSO)的微服务和40多个使用SSO用户的微服务(所有微服务都有您数据库中用户数据的部分副本,如用户名、电子邮件、电话、姓名等)。今天,我们已经使用网络挂钩来同步数据。现在我们正在研究如何与Kafka合作。问题是:有40多个微服务,我需要为每个微服务创建一个主题,或者是否可以创建一个主题“用户”,并且所有微服务都从中读取更改?如果我可以创建一个主题,如何保证一个微服务不能读取相同的数据两次或更多次?

如果有必要,知道我们使用的编程语言是哪种

rekjcdws

rekjcdws1#

需要为每个微服务创建一个主题

不清楚为什么你认为这是必要的

可以创建一个主题“User”,并且所有的微服务都会从中读取更改

绝对一点儿没错。或者,只使用下面建议的“一项服务”来创建用户的KTable。

如何保证一个微服务不能两次或多次读取相同的数据

您可以为每个服务使用唯一的group.id,并且您需要启用适当的设置来启用EOS语义,因为默认情况下,Kafka只能提供至少一次交付,这意味着您可能会获得“两次或更多”数据...

然而,更好的方法是使用Interactive Queries(或kSQLDB rest API for Python)创建一个CQRS模式,而不是使用“每个服务数据库”方法。

或者,Kafka Connect也可以用来填充这些部分数据库。

相关问题