SpringCloud: zuul路由网关,gateway
前言:
在微服务架构中的两大核心就是注册中心和路由网关,此篇介绍的就是springclloud netfix中负责路由网关的组件,zuul

一,什么是zuul
zuul包含了对请求的路由和过滤两个主要功能
其中路由和功能负责外部请求转发到具体服务实例上,是实现外部统一入口的基础,而过滤功能负责对请求的处理过程进行干预,实现请求校验,服务聚合等功能的基础;
zuul对Eureka进行整合,将zuul自身注册为eureka服务治理下的应用,同时从eureka获得其他服务的信息,就是说消费者获取服务是要先通过zuul跳转获得
总结:
zuul将eureka管理的微服务又封装了一层,所有消费者要获取服务都要通过zuul去转发,因此客户端是得不到真实的服务地址的,客户端访问的是指定服务zuul地址,提高了系统的安全性
通俗的说Zuul属于服务提供者,只不过提供的是路由网关的服务
二,配置zuul
新建一个服务用来实现zuul
导入相关依赖
<dependencies>
<!--zuul,路由网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--hystrix-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--dashboard流监控-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--ribbon=负载均衡-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--eureka,注册中心-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--实体类+web-->
<dependency>
<groupId>com.king</groupId>
<artifactId>springcloud-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
yaml配置
server:
port: 9527
#微服务id
spring:
application:
name: spring-zuul
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
#实例id
instance:
instance-id: zuul9527.com
#显示ip
prefer-ip-address: true
#zuul
zuul:
routes:
mydept.serviceId: springcloud-provider-dept
mydept.path: /mydept/**
ignored-services: "*" #不能在使用这个路径访问了,ignored:忽略,隐藏全部的真实项目地址
# prefix: 设置统一的前缀
info:
app.name: springCloud-zuul-gateway
company.name: king
主启动类配置,@EnableZuulProxy //开启网关代理
@SpringBootApplication @EnableZuulProxy //开启网关代理 public class ZuulApplication_9527 { public static void main(String[] args) { SpringApplication.run(ZuulApplication_9527.class,args); } }
总环:zuul可以简单理解为在众多微服务外面又包裹了一层,同时屏蔽内部细节,封装的思想

浙公网安备 33010602011771号