1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > SpringCloud微服务架构篇6:API服务网关

SpringCloud微服务架构篇6:API服务网关

时间:2022-03-27 08:25:02

相关推荐

SpringCloud微服务架构篇6:API服务网关

API服务网关

API服务网关

API服务网关就是出现在微服务边界上的一个面向API的、串行集中式的、对访问请求强管控的服务,采用的是一个外观模式。API服务网关是微服务访问的统一入口,负责服务请求路由、组合及协议转换等处理。

API服务网关帮助开发者隐藏系统架构实现的细节,提供统一的入口供客户端访问,让微服务使用更为友好。通过微服务的统一访问控制,简化了客户端开发的复杂度,降低了客户端与微服务之间的通信次数,客户端不需要与多个微服务之间进行通信,也不需要了解各个微服务的详细服务。借助API服务网关可统一做切面任务,避免每个微服务自己开发,提升效率,使系统更加标准化。通过API服务网关,可以将异构系统进行统一整合。API服务网关需要实现一个高可用伸缩性强的服务,避免单点失效。API服务网关需要对所有微服务实例所暴露的端点进行统一的管理,

Spring Cloud与Netflix Zuul

API服务网关

Zuul组件的功能:

动态路由:支持与Eureka服务器的整合,可以动态对注册到Eureka服务器中的微服务进行路由映射。Zuul提供了一系列的路由规则配置,可以针对实际情况,实现微服务路由的灵活控制。监控与审查:通过对特定的接口设置访问白名单、访问次数、访问频率等。身份认证与安全:通过Zuul将用户登录认证等类似的功能抽取出来,让微服务系统无须关注认证的逻辑,实现统一的逻辑处理。还可以统一在服务网关层增加一个额外的保护层来防止恶意攻击等。压力测试:通过Zuul所提供的过滤器功能可以逐渐增加对某一服务集群的流量,进行服务性能测试。金丝雀、A/B测试:新版本、新功能需要测试相应的功能,通过API服务网关,控制部分用户访问服务实例。服务迁移:通过Zuul代理可以处理来自旧端点的所有流量,将请求重定向到新的端口。负载剪裁/限流

启动Zuul路由服务

API服务网关

1、构建Zuul路由服务器

编写pom文件

编写启动类

编写配置文件

2、路由测试

启动服务治理服务器,端口8260;启动商品微服务;端口8100;启动Zuul路由服务,端口8300。

说明Zuul路由服务器已经将请求自动转发到商品微服务中。

Zuul将默认从Eureka服务器中获取所注册的服务,将服务的ID作为请求路径中的一部分,然后将用户的请求自动转发到这些服务中。

3、负载均衡测试

启动2个用户微服务,端口分别为8000和8001。

然后继续访问http://localhost:8300/product-service/product/comment该接口验证Zuul服务器负载均衡。

如果处理不好Zuul路由服务的话,Zuul路由服务可能会成为一个访问瓶颈,所以在构建API访问网关的时候需要把我两个原则:

KISS原则:Keep it Simple and Stupid,要保持API服务网关的简单和轻量。

stateless原则:无状态,Zuul服务网关中不应该、也不可以保存有关服务调用过程中的状态数据。

4、Hystrix容错测试

关闭调用户微服务,继续访问。

Zuul本身已经默认集成了Hystrix和Ribbon,所以Zuul拥有线程隔离和服务容错的自我保护能力,以及对服务调用的客户端负载均衡功能。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。