springcloud系列14——Eureka、Ribbon和Feign常見問題和解決
阿新 • • 發佈:2019-02-03
1.修改System Status的Environment和Data Center
如圖:
增加如下配置:
eureka:
environment: product
datacenter: spring cloud
或者在啟動時使用-Deureka.datacenter=spring cloud
這種方式來指定。
2.Eureka配置instanceId顯示IP
eureka:
instance:
instance-id:
# 顯示應用名稱:ip地址:埠號
${spring.application.name}:${spring.cloud .client.ipAddress}:${server.port}
3.Consider defining a bean of type ‘com.tommy.config.feign.UserFeignClient’ in your configuration.
在@EnableFeignClients註解上增加UserFeignClient所在的package。
即:
@EnableFeignClients({"com.tommy.config.feign"})
4.使用RestTemplate呼叫服務提供方返回List的服務問題
這裡是在百度雲視訊第18節中看到的,比如服務提供方定義了一個介面返回List,呼叫方使用RestTemplate呼叫時返回的並不是List。
即下面的程式碼是錯誤的:
List<User> list = this.restTemplate.getForObject("http://microservice-springcloud-user/user/list",List.class);
應該改成
User[] users = this.restTemplate.getForObject("http://microservice-springcloud-user/user/list",User[].class);
List<User> list = Arrays.asList(users);
不過,我本地測試沒有出現這個問題。