springcloud之zuul

案例代码:https://gitee.com/menbbo/springclouddemo.git

zuul路由网关

什么是zuul?

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

zuul工作原理

 

 zuul的核心是一系列的filters,作用与servlet类似。

springcloud之zuul的使用

 1.父项目下创建springcloud_zuul模块 引入maven依赖

    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
            <version>1.4.6.RELEASE</version>
     </dependency>

2.配置application.properties

server.port=9527 
spring.application.name=springcloud_zuul
eureka.client.service-url.defaultZone= http://localhost:8761/eureka
eureka.instance.instance-id=springcloud
eureka.instance.prefer-ip-address=true
info.app.name=men-springcloud
zuul.routes.mydept.serviceId=client
#代替微服务名 zuul.routes.mydept.path=/springcloudzuul/**

3.创建启动类

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

4.其他模块

创建eureka_server、consumer01、product01模块。依次启动eureka_server等几个模块。

访问localhost:8761可以看到3个服务都已注册到eureka中。

 原来服务访问路径:

使用网关之后的访问路径:springcloudzuul替代微服务的名称,端口为zuul的端口号

如果application.properties中添加配置

#访问路径的前缀
zuul.prefix=/menbbo/

其访问路径在服务名之前加上该路径前缀:

原文地址:https://www.cnblogs.com/menbo/p/13532164.html