SpringCloud系列九:脫離Eureka使用Ribbon

1. 回顧web

  在前文的示例中,是將Ribbon與Eureka配合使用的。可是現實中可能不具有這樣的條件,例如一些遺留的微服務,它們可能並無註冊到Eureka Server上,spring

  甚至根本不是使用Spring Cloud開發的,此時要如何使用Ribbon實現負載均衡架構

2. 脫離Eureka使用Ribbonapp

  > 複製項目 microservice-consumer-movie-ribbon,將ArtifactId修改成 microservice-consumer-movie-without-eureka負載均衡

  > 爲了更具說服力,將Eureka的依賴替換爲Ribbon依賴,即將ide

<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-ribbon</artifactId>
</dependency>

  > 去掉啓動類上的@EnableDiscoveryClient註解spa

package com.itmuch.cloud.microserviceconsumermoviewithouteureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @SpringBootApplication public class MicroserviceConsumerMovieWithoutEurekaApplication { public static void main(String[] args) { SpringApplication.run(MicroserviceConsumerMovieWithoutEurekaApplication.class, args); } @Bean @LoadBalanced // 實現負載均衡
    public RestTemplate restTemplate() { return new RestTemplate(); } }

  > 將application.yml修改以下:rest

server:
  port: 8010
spring:
  application:
    name: microservice-consumer-movie
microservice-provider-user:
  ribbon:
    listOfServers: localhost:8000,localhost:8001

  其中,屬性microservice-provider-user.ribbon.listOfServers用於爲名爲microservice-provider-user的Ribbon客戶端設置請求的地址列表日誌

  > 啓動兩個以上的 microservice-simple-provider-user 實例

  > 啓動 microservice-consumer-without-eureka 

  > 屢次訪問 http://localhost:8010/log-instance,控制檯打印相似以下日誌

  由結果可知,儘管電影微服務和用戶微服務並無註冊到Eureka上,Ribbon仍可正常工做,請求依舊會分攤到兩個用戶微服務節點上

3. 總結

  本文講解了脫離Eureka使用Ribbon的狀況。

  下文將講解使用Feign實現聲明式REST調用,敬請期待~~~

 4. 參考

  周立 --- 《Spring Cloud與Docker微服務架構與實戰》

相關文章
相關標籤/搜索