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;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM