题记:
在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简单的微服务系统如下图:
在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服。服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理(config服务用法,后面讲解),配置服务的配置文件放在git仓库,方便开发人员随时改配置。
本章案例 源码下载:链接: https://pan.baidu.com/s/1yBGsaRR5P4kwq7Du_wC3dA 提取码: ra3a
一、Zuul简介
Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能。
zuul有以下功能:
- Authentication
- Insights
- Stress Testing
- Canary Testing
- Dynamic Routing
- Service Migration
- Load Shedding
- Security
- Static Response handling
- Active/Active traffic management
二、前期项目启动
继续用上一篇的工程, 启动eureka-server,端口为8761; 启动service-hi (启动一次就好,这里不再演示负载均衡效果),端口为8762;启动消费服务service-ribbon(端口为8764)、service-feign(端口为8765)
三、Zuul的路由转发
新建service-zuul工程
pom.xml导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.liujun</groupId>
<artifactId>service-zuul</artifactId>
<version>0.0.1-SNAP