目标:使用Spring Cloud Zuul建立服务网关

开发环境:IntelliJ IDEA

操作步骤:基础环境配置->Zuul组件配置->应用参数配置->客户端微服务编写->应用运行测试(Eureka/Zuul/Client)

1.基础环境配置

与Eureka组件类似,新建一个项目Spring_Cloud_Zuul,配置参考博客:

https://blog.csdn.net/xingyuzhe/article/details/79907748

2.Zuul组件配置

API网关在应用系统中的作用为统一处理外部客户端访问,实现请求路由、负载均衡、校验过滤等功能。

Spring Cloud Zuul是基于Netflix Zuul实现的API网关组件,通过与服务注册中心Eureka组件协作,解决了服务实例维护的问题。

Netflix Zuul项目地址:https://github.com/Netflix/zuul

Zuul组件核心功能:

(1)Zuul、Ribbon以及Eureka相结合,可以实现智能路由和负载均衡的功能,Zuul能够将请求流量按某种策略分发到集群状态的多个服务实例。

(2)网关将所有服务的API接口统一聚合,并统一对外暴露。外界系统调用API接口时,都是由网关对外暴露的API接口。保护内部微服务单元的API接口。

(3)网关服务可以做用户身份认证和权限认证,防止非法请求操作API接口,对服务器起到保护作用。

(4)网关可以实现监控功能,实时日志输出,对请求进行记录。

(5)网关可以用来实现流量监控,在高流量的情况下对服务进行降级。

(6)API接口从内部服务分离出来,方便做测试。

网关实现基于HTTP协议,并分为多个过滤器:

Spring Cloud Zuul--服务网关组件配置与使用

开发流程:

(1)新建Module工程-CaaS_Zuul_Gateway

Spring Cloud Zuul--服务网关组件配置与使用

Spring Cloud Zuul--服务网关组件配置与使用

项目结构:

Spring Cloud Zuul--服务网关组件配置与使用

(2)添加依赖配置

添加Eureka Client组件支持,功能为将自身作为一个应用注册到服务注册中心:

Spring Cloud Zuul--服务网关组件配置与使用

添加Zuul组件支持,提供网关服务:

Spring Cloud Zuul--服务网关组件配置与使用

添加Spring Boot的web功能以及测试功能:

Spring Cloud Zuul--服务网关组件配置与使用

添加Maven插件支持:

Spring Cloud Zuul--服务网关组件配置与使用

(3)编写Module项目主程序

@EnableEurekaClient注解开启EurekaClient的功能

@EnableZuulProxy注解开启Zuul的功能

Spring Cloud Zuul--服务网关组件配置与使用

3.应用参数配置

路由配置在application.yml中实现

Spring Cloud Zuul--服务网关组件配置与使用

4.客户端微服务编写

为测试网关功能,需编写客户端微服务,其中包含简单接口调用。

开发流程:

(1)新建一个Module工程-CaaS_Zuul_Client

Spring Cloud Zuul--服务网关组件配置与使用

Spring Cloud Zuul--服务网关组件配置与使用

(2)添加配置依赖

添加eureka客户端以及spring boot配置依赖

Spring Cloud Zuul--服务网关组件配置与使用

添加maven插件依赖

Spring Cloud Zuul--服务网关组件配置与使用

(3)编写Module项目主程序

@EnableEurekaClient注解开启注册服务功能

Spring Cloud Zuul--服务网关组件配置与使用

(4)编写Module项目控制器

新建EurekaClientController.java

Spring Cloud Zuul--服务网关组件配置与使用

(5)编写应用运行配置文件

编写application.yml

Spring Cloud Zuul--服务网关组件配置与使用

5.应用运行测试(Eureka/Zuul/Client)

应用运行测试过程启用4个微服务:服务注册中心Eureka、两个Client服务、服务网关Zuul

其中两个客户端服务使用不同端口号:

java -jar xx.jar --server.port=8762

java -jar xx.jar --server.port=8763

查看服务注册中心:网关服务和客户端服务已经注册成功

Spring Cloud Zuul--服务网关组件配置与使用

通过网关调用客户端服务接口:http://localhost:5000/zuulclientapi/hello?name=caoxin

Spring Cloud Zuul--服务网关组件配置与使用

刷新页面:自动完成负载均衡

Spring Cloud Zuul--服务网关组件配置与使用




相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
  • 2021-11-25
  • 2022-12-23
  • 2021-10-09
  • 2021-11-09
  • 2021-12-14
猜你喜欢
  • 2021-09-06
  • 2021-06-03
  • 2021-12-03
  • 2021-08-22
  • 2022-03-15
  • 2022-12-23
相关资源
相似解决方案