1. 程式人生 > 其它 >julia有 pytorch包嗎_TensorFlow bug激怒社群,使用者:我要用PyTorch了!

julia有 pytorch包嗎_TensorFlow bug激怒社群,使用者:我要用PyTorch了!

Ribbon

Ribbon是什麼?

  • Spring Cloud Ribbon是基於NetFilx Ribbon實現的一套客戶端負載均衡的工具。
  • 簡單來說,Ribbon是Netfilx釋出的開源專案,主要功能是提供客戶端的軟體負載均衡演算法,將NetFilx的中間層服務連線在一起。Ribbon的客戶端元件提供一系列完整的配置項如:連線超時,重試等等。簡單的說,就是在配置檔案中列出LoadBalancer(簡稱LB:負載均衡)後面所有的機器,Ribbon會自動的幫助你基於某種規則(如簡單輪詢,隨機連線等等)去連線這些機器。我們也很容易使用Ribbon實現自定義的負載均衡演算法。

Ribbon能幹嘛?

  • LB(Load Balance),負載均衡,在微服務或分散式叢集中經常用到的一種應用。
  • 負載均衡簡單的說就是將使用者的請求平攤的分配到多個服務商,從而達到系統的HA(高可用)。
  • 常用的負載均衡軟體有Nginx,Lvs等等。
  • dubbo,SPirngCloud中鈞給我們提供了負載均衡,SpringCloud的負載均衡演算法可以自定義。
  • 負載均衡簡單分類:
    • 集中式LB
      • 即在服務的消費方式和提供方之間使用獨立的LB設施,如Nginx,由該設施負責吧訪問請求通過某種策略轉發至服務的提供方!
    • 程序式LB
      • 將LB邏輯整合到消費方,消費方從註冊中心獲知有哪些地址可用,然後自己再從這些地址選出一個合適的伺服器。
      • Ribbon就屬於程序內LB,它只是一個類庫。集成於消費方程序,消費方通過它來獲取到服務提供方的地址。

使用

在之前編寫的服務消費者(客戶端)使用,https://www.cnblogs.com/xiaominaaaa/p/14058588.html

  • pom.xml
    新增Ribbon和Eureka客戶端的依賴
 <!--ribbon-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
<!--Eureka 客戶端-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • applictaion.yml
server:
  port: 8080

#Eureka 配置
eureka:
  client:
    register-with-eureka: false #不向註冊中心註冊自己
    service-url:
      defaultZone: http://eureka1.com:7001/eureka/,http://eureka1.com:7001/eureka/,http://eureka3.com:7003/eureka/
  • 新增Eureka客戶端註解
@SpringBootApplication
@EnableEurekaClient //為Eureka客戶端
public class PersonConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(PersonConsumerApplication.class,args);
    }
}
  • 在配置類的RestTemplate添加註解
@Configuration
public class WebConfig {
    //配置負載均衡實現RestTemplate
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
  • 更改請求的地址為微服務應用名稱spring.application.name
   //Ribbon 不能使用Ip地址 ,而應該使用服務名來實現
    private static final String REQUEST_URL = "http://provider-person-8001";