No instances available for localhost

 

   使用RestTemplate類調用其餘系統的url的時候,加上ribbon的註解@LoadBalanced上這個註解以後訪問,就報錯了。算法

 

 

 

報錯以下:app

 

由於這裏你不能直接訪問地址,須要把地址改爲你所調用的ur在eureka上註冊的application.name負載均衡

將代碼修改成以下,就能夠訪問了url

 

具體緣由,我查看了一下源碼和網上找了一下,貌似是在加了了註解 @LoadBalanced 以後,咱們的r estTemplate 會走這個類RibbonLoadBalancerClient,斷點進入了以下的頁面,serverid必須是咱們訪問的服務名稱 ,當咱們直接輸入ip的時候獲取的server是null,就會拋出異常.net

 

 

使用服務名稱以下圖:3d

 

仔細想了想,由於ribbon的做用是負載均衡,那麼你直接使用ip地址,那麼就沒法起到負載均衡的做用,由於每次都是調用同一個服務,當你使用的是服務名稱的時候,他會根據本身的算法去選擇具備該服務名稱的服務。server

 

轉載:https://blog.csdn.net/november22/article/details/54612454blog