首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于系统架构的建议

关于系统架构的建议
EN

Stack Overflow用户
提问于 2018-10-17 23:53:59
回答 1查看 54关注 0票数 1

我有一些关于系统架构的问题。我正在构建一个售票系统。基本上,它是在创建支持票证。

我正在尝试弄清楚我是否以正确的方式使用了组件。

在第一种情况下,senario:

客户端请求创建新的票证,网关将请求转发到票务服务,票务服务想要检查令牌是否有效,因此通过nats令牌抛出publish,如果令牌是有效的身份验证服务注册令牌和具有密钥-值对的信息到Redis一段时间,比如说30分钟。并将结果发布到nats。Nats将其重定向到票务服务的结果。如果一切正常,票务服务将在数据库中创建一条记录。

第二种情况是:

用户再次执行上述所有步骤,但是,身份验证端不是请求身份验证服务从Redis获取信息,而是再次执行相同的步骤。

这是我的问题,

你认为Redis的用途是正确的吗?或者,当请求进行身份验证时,我应该删除它并反复询问吗?

你认为我应该在Gateway上进行所有的身份验证吗?

因此,它看起来像是与上面的问题有关。

在初始登录和请求时。(第一种情况)

登录后(第二种情况)

我非常感谢你的建议,批评和评论。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2018-10-19 12:13:28

更合适的方式是从API网关ie进行身份验证。API网关使用身份验证服务进行身份验证,如您提出的两个解决方案的第二个选项中所述。

API网关应该被证明是所有请求的“网关”,并过滤任何未经身份验证或授权访问您的服务的请求。身份验证和授权可以是它们自己的服务,在这种情况下,API网关将使用该服务来确定请求是否可以访问任何其他下游服务。除此之外,它还通过删除NATS消除了复杂性。少一个要操作和管理的组件总是成功的。

我要做的一个小修改是,在第二步中,我将让身份验证服务检查Redis,而不是让API网关直接访问Redis。换句话说,身份验证服务将首先转到Redis,然后再转到数据库。这样,就会有更多的解耦。

API网关不需要知道认证服务如何在Redis中存储令牌的密钥。因此,如果您决定更改密钥在身份验证服务中的方式,则不必在API网关中有效地部署从Redis读取密钥的新更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52858977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档