微服务架构设计有问题吗?

时间:2020-03-11 16:28:07

标签: java php architecture microservices

问题背景:

当前,我们正在为集团的业务系统设计一个统一的权威中间阶段系统。由于设计的系统数量众多,因此相应的权限划分业务规则很好。从以前的“分布在各种业务系统中”开始,现在计划将其“在权限中心分配用户行为中统一”。 在进行架构设计时,架构图大致分为以下几类:

Architecture diagram

问题:

  1. 较低级别的服务并不直接相互依赖。上级聚合服务以统一的方式提供外部服务。这种体系结构可以在一定程度上减少底层服务之间的耦合。但是聚合服务的存在已经变成了“大集合”和其他系统。应该如何优化此步骤?
  2. 统一聚合服务后,它成为企业的主要入口,因此是单点。应该如何优化此步骤?
  3. 在此体系结构下,上层聚合服务就像一个网关。仍然需要入口网关吗?

Thx〜?

1 个答案:

答案 0 :(得分:0)

  1. 需要在服务器端接收请求的入口网关,您可以为此使用ELB或任何入口控制器。
  2. 您需要对所有微服务上的每个请求进行身份验证,而无需将所有请求发送到聚合服务。
  3. 您可以编写用于对用户进行身份验证的身份验证服务,并从角色微服务获取角色以继续执行RBAC。
  4. 经过聚合服务验证的用户无需再向聚合微服务发送请求,令牌创建时间就可以设置令牌的TTL。

  5. 但是,请求可以直接通过入口网关发送到任何微服务,目标服务可以使用TTL从REDIS检查令牌,如果令牌已过期,则发送吊销通知,删除REDIS中的密钥,否则继续使用任何微服务根据角色。

  6. 是的,您需要入口网关,并且聚合微服务可以被视为微服务,而不是所有微服务的上层。