呼叫註冊到eureka server上的微服務,通過微服務名字呼叫,獲取服務例項慢或者失敗的問題

zxf_noimp發表於2019-03-09

EurekaClient啟動以後,不是立即向Eureka Server註冊的,而是有一個延遲向服務端註冊的時間,通過跟蹤原始碼,可以發現模式延遲時間為40秒;

如果還沒有註冊,則會丟擲:使用 RestTemplate 報java.lang.IllegalStateException:No instances available for localhost

 

//微服務的真實名字為eureka顯示的服務名字,一般為大寫
	private static final String REST_URL_PREFIX = "http://SCHOOLCLOUD-SERVICE-SYSTEM";
	
	@Autowired
	private RestTemplate restTemplate;	
	
	/**
	 * 該方法作為內部呼叫了系統管理服務的SCHOOL-SERVICE-SYSTEM的/sysUsers/list介面
	 * EurekaClient啟動以後,不是立即向Eureka Server註冊的,而是有一個延遲向服務
端註冊的時間,通過跟蹤原始碼,可以發現模式延遲時間為40秒
	 * @return
	 */
	@RequestMapping(value = "/kqgcList/list")
	public String list() {
		return restTemplate.getForObject(REST_URL_PREFIX + "/sysUsers/list", String.class)

 

相關文章