4-11问答
来源:4-11 【勤于思考,夯实学习成果】阶段练习题

SuccessorSocialism
2019-08-27
1.Eureka Server 维护了系统中服务的元信息,这些元信息包含什么你知道吗 ?元信息又是怎么存储的呢 ?
端口、服务健康信息、续约信息等,存储于专门为服务开辟的注册表中,用于其他组件使用实现整个微服务生态。
还可以自定义元数据信息,使用 eureka.instance.metadata-map.=value来配置。内部其实就是维护了一个 Map 来保存自定义元数据信息,可以配置在远端服务,随服务一并注册保存在 Eureka 注册表中。
2.如果要给我们的系统接入用户模块(用户和权限),放在网关里面做合适吗
可以是可以,不过这样是不是会增加zuul的压力?
我觉得可以让zuul缓存角色和资源(权限 / url ),每次通过版本判断是否更新缓存,更新角色权限资源表时候要更新下version字段(可以保持到redis中),将用户的角色保存到jwt中,这样,在zuul 就可以自己认证了权限,不需要调用权限认证服务,减小开销。
1回答
-
同学你好:
第一个问题我就不再多做说明啦,你的答案已经很完整啦!
第二个问题:
用户模块往往都会与权限独立的成为一个微服务存在,这个服务可以提供例如:用户注册、用户登录、权限校验这类单一的功能。另外,这个服务不仅仅是可以应用在某一个业务里面。很多时候,是整个公司提供一个用户账户服务,所有的产品线或者业务工程都会使用这一个用户服务。
我们的 SpringCloud 框架服务,入口是网关(Zuul、GateWay 等等),最合理的方式做权限校验一定是放在入口处,而不要下推到功能服务(Service、微服务)里面。所以,放在网关中做权限校验是合理的。
课程将来的更新,可以看到我在网关中做权限校验的实现 -- 这是一个彩蛋!
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
732019-11-07
相似问题