微服务如何知道Redis密钥来访问Redis中的数据

问题描述 投票:0回答:2

我一直在搜索很多关于微服务如何访问 Redis 数据的信息,但没有找到好的教程。这是我的用例。

用户首次登录认证微服务A(Spring Boot)。经过身份验证后,用户的个人资料数据由微服务 A 存储在 Redis 缓存中。

现在有微服务B(Spring Boot)和微服务C(NodeJs)。这两个微服务想要从 Redis 读取用户的个人资料。

我的问题是这两个服务 B 和 C 如何知道身份验证微服务 A 用于存储配置文件数据的密钥,以便它们可以使用它来访问数据?

Redis 密钥是否应该写入属性文件并在微服务之间共享?在现实生产环境中这是如何完成的?

database redis stackexchange.redis spring-data-redis redis-cluster
2个回答
0
投票

如果您需要通知其他服务并使用 Redis 来执行此操作,您可以使用 Redis Pub/Sub 功能。您可以使用服务 B 和 C 订阅的通道

newuser
,并让服务 A 在创建新用户密钥时将其发布到该通道。

了解有关 Redis Pub/Sub 的更多信息


0
投票

这是一个更普遍的问题,所以我要问一个引导性问题。希望没问题。

如果您有一个存储多个微服务使用的用户配置文件数据的关系数据库,您将如何共享表和字段名称?

如果您的答案是“我不知道,这是一个好问题”,那么这实际上是一个关于微服务之间共享数据的问题,而不是特定于 Redis 的问题。

如果您有该问题的答案,请将该答案用于 Redis。 Redis 中的键名称类似于关系数据库中的表和字段名称。

也就是说,有一种观点认为微服务不应该共享内部数据。相反,他们应该传递消息或互相调用,并且每个人都应该有自己的数据库。而且,如果他们不这样做,那么它实际上就是一个分布式整体。我赞同这种思想流派,所以我的建议是不要以这种方式构建你的软件。

也就是说,其他优秀的人有不同的意见并订阅其他学校,这很好。毕竟,没有解决方案,只有权衡。如果我订阅了另一所学校,我会将其全部存储在配置文件中或对其进行硬编码。就像我对数据库表名称所做的那样。

© www.soinside.com 2019 - 2024. All rights reserved.