SpringCloud Alibaba实战 -引入服务网关Gateway

https://www.cnblogs.com/three-fighter/p/14971538.html

SpringCloud Alibaba实战 -引入服务网关Gateway

 

 

 

  • Nginx: Nginx由内核和模块组成,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件与客户端请求进行 URL 匹配,用于启动不同的模块去完成相应的工作。
  • Kong: Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求
  • Zuul 是 Netflix 开源的微服务网关组件,它可以和 Eureka、Ribbon、Hystrix 等组件配合使用。社区活跃,融合于 SpringCloud 完整生态,是构建微服务体系前置网关服务的最佳选型之一。
  • Spring Cloud Gateway 是Spring Cloud的一个全新的API网关项目,目的是为了替换掉Zuul1。Gateway可以与Spring Cloud Discovery Client(如Eureka)、Ribbon、Hystrix等组件配合使用,实现路由转发、负载均衡、熔断等功能,并且Gateway还内置了限流过滤器,实现了限流的功能。

 

SpringCloud Alibaba实战 -引入服务网关Gateway

 

 

  • bootstap.yml:在配置文件里除了应用名称,我们还配置了Nacos的相关配置,不太清楚的同学可以查看上一节。
复制代码SpringCloud Alibaba实战 -引入服务网关Gateway

 

###服务名称(服务注册到nacos名称,如serviceId)
spring:
cloud:
nacos:
discovery:
server-addr: http://www.XXXX.com:8848
namespace: de4a857c-8341-4d3d-a1e0-f2e64eaf8c97
config:
server-addr: http://www.XXXXX.com:8848
file-extension: yaml
#name: ${spring.application.name}
prefix: ${spring.application.name} #nacos 配置中心文件前缀
group: DEFAULT_GROUP
#变更刷新
refresh: true
remote-first: true
enabled: true
namespace: de4a857c-8341-4d3d-a1e0-f2e64eaf8c97

 SpringCloud Alibaba实战 -引入服务网关Gateway

 SpringCloud Alibaba实战 -引入服务网关Gateway

 

我们在里面进行了路由转发的配置,也就是routes,我们来看一看这些配置项都是什么意思:

  • id: 路由的唯一标识,用以和其它Route区分
  • uri: 请求要转发到的地址,lb 指的是从nacos中按照名称获取微服务,并遵循负载均衡策略
  • predicates: 路由需要满足的条件,也是个数组(这里是的关系)
  • filters: 过滤器,请求在传递过程中可以通过过滤器对其进行一定的修改

在这个配置项里,我们定义了user 开头的请求,分发到user-service这个服务。

接下来我们看看效果吧!SpringCloud Alibaba实战 -引入服务网关Gateway

 

 

 

到此,我们已经引入了Spring Cloud Gateway作为微服务网关,并完成了基本的路由转发的功能。

除了基本的路由转发,服务网关还可以完成权限校验、限流、API校验等功能,后续我们会继续深入,敬请期待!

 

 

上一篇:引入 Gateway 网关,这些坑一定要学会避开!!!


下一篇:spring-cloud-gateway 到底对我的UAA做了什么