《springcloud 二》微服務動態閘道器,閘道器叢集

x號開發者發表於2019-04-09

動態閘道器    實際上是閘道器和分散式配置中心的整合,通過post手動重新整理,生效

 

動態閘道器

傳統方式將路由規則配置在配置檔案中,如果路由規則發生了改變,需要重啟伺服器。結合整合SpringCloud Config分散式配置中心,實現動態路由規則。

在git上建立一個檔案service-zuul-dev.yml

### 配置閘道器反向代理    
zuul:
  routes:
    api-a:
     ### 以 /api-member/訪問轉發到會員服務
      path: /api-member/**
      serviceId: app-itmayiedu-member
    api-b:
        ### 以 /api-order/訪問轉發到訂單服務
      path: /api-order/**
      serviceId: app-itmayiedu-order

Maven依賴資訊

新增監控中心依賴資訊

<!-- actuator監控中心 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- springcloud config 2.0 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>

application.yml

###服務註冊地址
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8100/eureka/
###api閘道器埠號      
server:
  port: 80
###閘道器名稱  
spring:
  application:
    name: service-zuul
  cloud:
    config:
    ####讀取字尾
      profile: dev
      ####讀取config-server註冊地址
      discovery:
        service-id: config-server
        enabled: true    

###預設服務讀取eureka註冊服務列表 預設間隔30秒

###開啟所有監控中心介面
management:
  endpoints:
    web:
      exposure:
        include: "*"

專案啟動

// zuul配置能夠使用config實現實時更新
    @RefreshScope
    @ConfigurationProperties("zuul")
    public ZuulProperties zuulProperties() {
        return new ZuulProperties();
    }

手動重新整理介面

http://127.0.0.1/actuator/refresh 

 

閘道器叢集

Zuul閘道器叢集使用Nginx反向代理即可,保證每臺閘道器配置資料相同。

 upstream  backServer{
        server 127.0.0.1:81;
        server 127.0.0.1:82;
    }
    server {
        listen       80;
        server_name  wg.itmayiedu.com;
       location / {
            ### 指定上游伺服器負載均衡伺服器
            proxy_pass http://backServer/;
            index  index.html index.htm;
        }
    }

 

相關文章