SpringCloud分布式系统之Zuul的使用

Zuul是Spring Cloud全家桶中的微服务API网关。

所有从设备或网站来的请求都会经过Zuul到达后端的Netflix应用程序。作为一个边界性质的应用程序,Zuul提供了动态路由、监控、弹性负载和安全功能。Zuul底层利用各种filter实现如下功能:

  1. 认证和安全 识别每个需要认证的资源,拒绝不符合要求的请求。
  2. 性能监测 在服务边界追踪并统计数据,提供精确的生产视图。
  3. 动态路由 根据需要将请求动态路由到后端集群。
  4. 压力测试 逐渐增加对集群的流量以了解其性能。
  5. 负载卸载 预先为每种类型的请求分配容量,当请求超过容量时自动丢弃。
  6. 静态资源处理 直接在边界返回某些响应。

1、创建microservicecloud-zuul-gateway模块
2、pom.xml配置

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.4.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-zuul -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-hystrix -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
            <version>1.4.5.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-hystrix-dashboard -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>
    </dependencies>

3、application.yml配置

server:
  port: 9527

eureka:
  client:
    service-url:
      defaultZone: http://www.eureka7001.com:7001/eureka/,http://www.eureka7002.com:7002/eureka/,http://www.eureka7003.com:7003/eureka/    #eureka地址
  instance:
    instance-id: www.gateway9527.com                #修改主机ip名
    prefer-ip-address: true                         #访问路径可以显示IP地址

spring:
  application:
    name: microservicecloud-zuul-gateway-9527       #配置服务器名
zuul:
  routes:
    mydept.serviceId: microservicecloud-dept    #原来的ID
    mydept.path: /cloud/**     #配置ID
  ignored-services: "*"         #禁止所有ID
  prefix: kinglove           #前缀
#  ignored-services: microservicecloud-dept     #禁止原来的ID

4、主配置类

@SpringBootApplication
@EnableZuulProxy
public class ApplicationZuulGateway9527 {
     
    public static void main(String[] args) {
     
        SpringApplication.run(ApplicationZuulGateway9527.class,args);
    }
}

5、启动测试:
(1)启动eureka集群
(2)启动微服务
(3)启动zuul
(4)用微服务地址访问一下,看看是否正常,下面访问接口没问题
http://localhost:8001/api_content/add?id=29844051842168534466 SpringCloud分布式系统之Zuul的使用_第1张图片
(5)使用zuul访问看下,http://地址IP:端口/前缀/自己设置的ID/接口
http://localhost:9527/kinglove/cloud/api_content/add?id=29844051842168534466
SpringCloud分布式系统之Zuul的使用_第2张图片
也是可以访问的

你可能感兴趣的:(SpringCloud,Zuul)