美文网首页
《八》、springcloud微服务——Zuul路由相关

《八》、springcloud微服务——Zuul路由相关

作者: 神奇作手 | 来源:发表于2019-07-28 10:53 被阅读0次

一、概述

1、是什么?

Zuul包含了对请求的路由和过滤两个主要的功能:
  其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚会等功能的基础;
  Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
注意:Zuul服务最终还是会注册进Eureka

提供 = 代理 + 路由 + 过滤 三大功能

2、能干吗?

路由、过滤

3、官网资料

   https://github.com/Netflix/zuul/wiki/Getting-Started-2.0

二、路由基本配置

1、新建 Module模块:microservicecloud-zuul-gateway-9527
2、pom.xml文件修改
(1)、修改内容
    <!-- zuul路由网关 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>    
        <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
(2)、完整内容
<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>
  <parent>
    <groupId>cn.smilexl.springcloud</groupId>
    <artifactId>microservicecloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>microservicecloud-zuul-gateway-9527</artifactId>

    <dependencies>
        <!-- zuul路由网关 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>    
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!-- actuator监控 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- hystrix容错 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <!-- 日常标配 -->
        <dependency>
            <groupId>cn.smilexl.springcloud</groupId>
            <artifactId>servicespringcloud-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!-- 热部署插件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>
</project>

3、application.yml文件
server:
  port: 9527
  
spring:
  application:
    name: microservicecloud-zuul-gateway
  
eureka:
  client:
    service-url:
      defaultZone:  http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka 
  
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true 

#点击超链接后显示信息   
info:
  app.name: microservicecloud
  company.name: www.smilexl.cn
  build.artifactId: $project.artifactId$
  build.version: $project.version$ 
      
4、host文件修改

位置:C:\Windows\System32\drivers\etc 下的host文件添加如下配置:
     127.0.0.1 myzuul.com

5、主启动类:Zuul_9527_StartSpringCloudApp.java 添加@EnableZuulProxy注解
package cn.smilexl.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@EnableZuulProxy
@SpringBootApplication
public class Zuul_9527_StartSpringCloudApp {

    public static void main(String[] args) {
        
        SpringApplication.run(Zuul_9527_StartSpringCloudApp.class, args);
    }
}
6、启动测试

(1)、先启动3个eureka集群
(2)、一个微服务提供者:microservicecloud-provider-dept-8001
(3)、一个路由:microservicecloud-zuul-gateway-9527


(4)、测试:
     |--- 不用路由:http://localhost:8001/dept/get/1
     |--- 启用路由:http://myzuul.com:9527/microservicecloud-dept/dept/get/1

三、路由访问映射规则

1、对工程 microservicecloud-zuul-gateway-9527 进行相关的修改
(1)、添加代理名称

   yml中添加如下内容:

#代理名称 
zuul:
  routes:
    mydept.serviceId: microservicecloud-dept
    mydept.path: /mydept/**

此时存在的问题:

(2)、原真实服务名忽略

   yml中添加如下内容:单个具体的

#代理名称 
zuul:
  ignored-services: microservicecloud-dept   #原真实服务名忽略
  routes:
    mydept.serviceId: microservicecloud-dept
    mydept.path: /mydept/**

   yml中添加如下内容:多个内容用 “ * ”

#代理名称 
zuul:
  ignored-services: "*"   #原真实服务名忽略
  routes:
    mydept.serviceId: microservicecloud-dept
    mydept.path: /mydept/**
(3)、设置统一公共前缀

   yml中添加如下配置:

#代理名称 
zuul:
  prefix: /ll #统一公共前缀
  ignored-services: "*"   #原真实服务名忽略
  routes:
    mydept.serviceId: microservicecloud-dept
    mydept.path: /mydept/**

此时访问路径变为:http://myzuul.com:9527/ll/mydept/dept/get/1

(4)、最终的yml配置文件
server:
  port: 9527
  
spring:
  application:
    name: microservicecloud-zuul-gateway
  
eureka:
  client:
    service-url:
      defaultZone:  http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka 
  
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true 
    
#代理名称 
zuul:
  prefix: /ll #统一公共前缀
  ignored-services: "*"   #原真实服务名忽略
  routes:
    mydept.serviceId: microservicecloud-dept
    mydept.path: /mydept/**

#点击超链接后显示信息   
info:
  app.name: microservicecloud
  company.name: www.smilexl.cn
  build.artifactId: $project.artifactId$
  build.version: $project.version$ 
 
  

相关文章

网友评论

      本文标题:《八》、springcloud微服务——Zuul路由相关

      本文链接:https://www.haomeiwen.com/subject/tneurctx.html