案例代码: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/
其访问路径在服务名之前加上该路径前缀: