SpringCloud系列之Zuul路由网关配置

前言:

       网关为微服务提供了统一的入口,同时,将外部请求和服务隔离起来,保障后台服务的安全性,进行权限校验,拒绝不合法请求,将前端的请求动态的路由到服务集群。

一、网关的作用
      1、 权限控制和安全性--为每个请求提供身份认证,并拒绝不满足条件的请求。        
 
      2、预警和监控--跟踪前端有意义的请求和统计数据,以便我们准确了解生产环境运行状况。
 
      3、动态路由--根据需求将请求动态地路由到不同的后端集群。
 
      4、 压力测试--逐渐增大到集群的流量,以便进行性能评估。
 
      5、负载均衡--为每种类型的请求分配容量并丢弃超过限额的请求。
 
      6、静态资源处理--直接在Zuul处理静态资源并响应,而并非转发这些请求到内部集群中。
 
      7、多区域弹性--实现跨AWS区域请求路由,扩大了ELB的使用范围,并使前端服务更接近我们的成员。

二、配置路由

1、新建项目,并添加依赖

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

2、添加配置文件,将zuul注册到服务中心,zuul会自动寻找服务中的可用服务

server:
  port: 9527
 
spring:
  application:
       #网关服务名称
    name: mircoservice-zuul-getway

 #将客户端注册到服务中心    
eureka:
  client:
    service-url:
      defaultZone: http://eureka01.com:7001/eureka/,http://eureka02.com:7002/eureka/,http://eureka03.com:7003/eureka/ 
      
  instance:
    instance-id: getway-9527.com
    prefer-ip-address: true
    
    
    
zuul:
#忽略的微服务,即请求这些微服务不通过网关
#  ignored-services:
#   - "*"
#  - mircoservice-dept
  routes:
    #代理的微服务ID
    mydept.serviceId: mircoservice-dept
    #自定义路径
    mydept.path: /mydept/**
    
    
      
  

3、在启动类上添加注解@EnableZuulProxy

4、分别启动注册中心和网关,这时候请求路径变成

此外还可以配置统一的域名,配置负载均衡。

三、其他配置

       zuul还提供了一系列过滤功能

@Component
public class MyFilter extends ZuulFilter {

	public boolean shouldFilter() {
		// 默认为false,表示不开启过滤器,需要改为true
		return false;
	}

	public Object run() {
		// 过滤器逻辑
		return null;
	}

	@Override
	public String filterType() {
		
		//过滤器类别
//		Zuul提供4个级别的过滤器:
//		pre:可以在请求被路由之前调用
//		route:在路由请求时候被调用
//		post:在route和error过滤器之后被调用
//		error:处理请求时发生错误时被调用

		return "pre";
	}

	@Override
	public int filterOrder() {
		// 执行顺序为1,值越小越先执行
        return 1;
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章