搭建一套完整的微服務之網關路由-Zuul

本文就來說一下怎么去配置網關路由?

1. 創建項目gateway

使用Spring Initializr來快速構建網關項目,注意選擇下面的組件


2. 基礎配置

(1). 首先需要在啟動類添加注解@EnableZuulProxy

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

(2). 修改配置文件application.yml

spring:
  application:
    name: gateway
server:
  port: 8080
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

3. 檢查是否已經注冊到eureka


ok,已經成功注冊到eureka。

4. 真正的網關路由

(1). user-service項目添加一個接口用來測試

@RestController
public class LoginController {
    @GetMapping("/login")
    public String login(){
        return "hello,bearPotMan";
    }
}

重啟user-service,測試接口是否可用
訪問http://localhost:8081/login


ok,沒問題!

(2). 修改gateway項目啟動類

@SpringBootApplication
@EnableZuulProxy // 添加注解,啟動路由代理
public class GatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }
}

重啟gateway項目,訪問http://localhost:8080/user-service/login
注意: 默認路由規則 = 域名 + 端口 + 對應服務名(spring.application.name) + 接口地址


ok,可以正常顯示。
如果想要自定義路由規則,就需要在網關的配置文件中添加配置,比如

spring:
  application:
    name: gateway
server:
  port: 8080
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
zuul:
  routes:
    # 自定義規則名
    user-service-api:
      # url地址
      path: /user-api/**
      # 要路由到哪個服務 -- 對應于具體服務的 spring.application.name
      serviceId: user-service

ok,重啟網關服務,訪問http://localhost:8080/user-api/login


可以正常顯示,完美!
ok,以上就是本次分享的內容關于如何實現服務注冊與發現服務端。
下一篇就來說一下配置中心 Config 的基礎配置。

我是bearPotMan,一個經驗不足的十八線演(碼)員(農)。
Know everything,control everything!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容