springcloud Zuul学习笔记

  SpringCloud Zull是一个基于NetflixZuul实现的API网关组件,它实现了请求路由,负载均衡,校验过滤等功能;本文主要记录springcloud zuul的入门级demo开发过程;

   Zull相当于用户和微服务之间的一个屏障,进行相关配置后它先于微服务接收用户请求并过滤、校验并进行转发,这样大大提高了微服务的安全性

  跟之前提到的springcloud组件一样,开发一个简单的zull服务我们只需要关注以下几点:

 1、pom.xml

    <!-- 导入zuul的依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
        </dependency>

 2、application.properties

server.port=9999
#应用名称
spring.application.name=zuulServer

# 是否需要将自己注册到注册中心中,默认值true
eureka.client.registerWithEureka=true

# 是否从注册中心中获取注册信息,默认值true
eureka.client.fetchRegistry=true

# 客户端和服务端进行交互的地址
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:7070/eureka/,http://127.0.0.1:7071/eureka/

#将自己的ip地址注册到Eureka服务中
eureka.instance.prefer-ip-address=true

############ 进行zuul配置 ############
# 配置拦截的url,表示拦截sso开头的所有请求并进行服务转发
zuul.routes.loginserver.path=/sso/**

# 拦截到上面的path后制定分发个loginServer(之前开发的登录服务名称)
zuul.routes.loginserver.serviceId=loginServer

 3、项目的启动类

@EnableZuulProxy 
@SpringBootApplication
public class ZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication.class, args);
    }
}

4、过滤器的编写

/**
 * zuul的过滤器
 */
@Component
public class LoginZuulFilter extends ZuulFilter {
    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 0;
    }

    @Override
    public boolean shouldFilter() {
        return false;
    }

    @Override
    public Object run() throws ZuulException {
        RequestContext context = RequestContext.getCurrentContext();
        System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆成功进入了过滤器☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
        return null;
    }
}

猜你喜欢

转载自www.cnblogs.com/darling2047/p/9544099.html