2019年7月27日 星期六

Zuul ( SpringCloud 2.x 六)

增加一個 model

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>



server:
  port: 9099
    
spring:
  application:
    name: my-zuul
    
eureka:
  client:
    service-url:
      defaultZone: http://xxx.ooo9051:9051/eureka,http://xxx.ooo9052:9052/eureka,http://xxx.ooo9053:9053/eureka
  instance:
    instance-id: bruce-zuul
    prefer-ip-address: true
    nonSecurePort: ${server.port}
    
info:
  xxx.ooo: xxoo.aa
  name: zuul.info
  jdk_version: @java.version@
  version: @version@
  chi_test: 梅山小路用9099
  ppp: @aaa.bbb@
    
zuul:
  routes:
    mycloud: # 隨便寫
      serviceId: PROVIDER1
      path: /xxx/**
  # prefix: /abc
  # ignored-services: PROVIDER1 # 大寫微服務名稱


 ※ 有些版本訪問 http://zuul.ooo9099:9099/PROVIDER1/testGet 是可以成功的,但這樣就暴露了微服務名稱了,所以可以設定 ignored-services,如果全部都不給訪問,可以用「"*"」

※serviceId 會被 path 取而代之



※main 方法加入三個 annotation 即可

@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient

※模擬用戶發 request 到 zuul,所以在 hosts 增加 127.0.0.1 zuul.ooo9099



※測試

開啟 eureka -> provider (9001 port) -> zuul

然後在網址打上 http://zuul.ooo9099:9099/xxx/testGet 即可訪問

又如果有加 prefix,那就要換成如下的網址
http://zuul.ooo9099:9099/abc/xxx/testGet


※遇到的問題

application.yml 一定要配 zuul,可能其他版本可以,但我試的結果就是不行

沒有留言:

張貼留言