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; } }
原文:https://www.cnblogs.com/darling2047/p/9544099.html