【序8】springcloud-Feign

申明式Web服務客戶端:Feign

申明式:接口聲明、Annotation驅動
Web服務:HTTP的方式作爲通訊協議
客戶端:用於服務調用的存根
Feign:原生並不是Spring Web MVC的實現,基於AX-RS(Java REST規範)實現。Spring Cloud封裝了Feign,使其支持Spring Web MVC。RestTemplateHttpMessageConverter

  • RestTemplate 以及Spring Web MVC可以顯示地自定義HttpMessageconverter]實現。

假設,有一個Java接口Personservice,Feign可以將其聲明它是以HTTP方式調用的。

需要服務組件(SOA):

  1. 註冊中心(Eureka Server):服務發現和註冊
    a. 應用名稱:spring-cloud-eureka-server
    b. 服務端口:12345
  2. Feign客戶(服務消費)端:調用Feign中明接口
    1.應用名稱:person-client
  3. Feign 服務(服務提供)端:不一定強制實現Feign申明接口
    1.應用名稱:person-service
  4. Feign聲明接口(契約):定義一種Java強類型接口
    person-api
  • Feign客戶(服務消費)端、Feign服務(服務提供)端以及Feign聲明接口(契約)存放在同一個工程目錄。

person-client 可以感知 person-service應用存在的,並且Spring Cloud 幫助解析PersonService中聲明的應用名稱:“person-service",因此person-client 在調用Personservice服務時,實際就路由到person-
service的URL

實現Ribbon的規則

  • Rule
  • 隨機規則:RandomRule
  • 最可用規則:BestAvailableRule
  • 輪訓規則:RoundRobinRule
  • 重試實現:RetryRule
  • 客戶端配置:ClientConfigEnabledRoundRobinRule
  • 可用性過濾規則:AvailabilityFilteringRule
  • RT權重規則:WeightedResponseTimeRule
  • 規避區域規則:ZoneAvoidanceRule
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章