Spring Cloud應用(二)---ribbon使用

hurricane_li發表於2018-07-22

一個負載均衡器,至少提供以下功能:

 

  • 要維護各個伺服器的IP等資訊
  • 根據特定的邏輯選取伺服器

為了實現基本的負載均衡功能,Ribbon的負載均衡器有三大子模組:

 

  • Rule
  • Ping
  • ServerList

Ribbon的GitHub上的託管網址是:

        https://github.com/Netflix/ribbon

Ribbon在SpringCloud中使用時,配置可以通過兩種方式,一種是Java配置,另一種是配置檔案配置。

通過java配置:

package com.hurricane.learn.springcloud.ribbon;

import org.springframework.cloud.netflix.ribbon.RibbonClient;
import org.springframework.context.annotation.Bean;

@RibbonClient(name="user-service-provider",configuration=MyConfig.class)
public class MyConfig {
	
	@Bean
	public MyRule createMyRule() {
		return new MyRule();
	}

}

配置檔案配置:

#自定義規則的使用
user-service-provider.ribbon.NFLoadBalancerRuleClassName=com.hurricane.learn.springcloud.ribbon.MyRule

 

服務呼叫的一個神坑:

 

測試服務之間的呼叫,一直呼叫不成功,提示:

Request URI does not contain a valid hostname: http://user_service_provider/getUser

最後發現,竟然是因為服務例項名中不能有下劃線。將例項名改為aaa就可以進行訪問。

 

參考:

 

  • 楊恩雄的視訊教程

相關文章