我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbon或Feign实现服务的消费以及负载均衡;为了使得服务集群更为健壮,使用Hystrix的熔断机制 来避免在微服务架构中个别服务出现异常时引起的故障蔓延。
在该架构中,我们的服务集群包括:内部服务Service A和Service B,他们都会注册与订阅服务至Eureka Server,而Open Servc时一个对外的服务,通过负载均衡公开至服务调用方。我们把焦点聚集在对外服务这块,这种实现方式是否合理,有没有更好的实现方式呢?
这种架构不足之处:
对于上面的问题,最好的解决方法是——服务网关。
为了解决上面的问题,我们需要将权限控制这样的东西从我们的服务单元中抽离出去,而最适合这些逻辑的地方就是处于对外访问最前端的地方,我们需要一个更加强大的负载均衡器——服务网关。
服务网关是微服务架构中不可或缺的的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、负载均衡之外,它还具备了权限控制等功能。Spring Cloud NetFlix中的Zuul就具备这样的功能。
Zuul是NetFlix开源的微服务网关,它可以和Eureka、Ribbon、Hystrix等组件配合使用。Zuul的核心是一些列的过滤器,这些过滤器可以完成以下功能。
Spring Cloud对Zuul进行了整合与增强。目前,Zuul使用的默认>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)