springcloud系列14——Eureka、Ribbon和Feign常见问题和解决

1.修改System Status的Environment和Data Center

如图:

增加如下配置:

1
2
3
eureka:
environment: product
datacenter: spring cloud

或者在启动时使用-Deureka.datacenter=spring cloud这种方式来指定。

2.Eureka配置instanceId显示IP

1
2
3
4
5
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.

参考:https://www.jianshu.com/p/551c7c251f91

在@EnableFeignClients注解上增加UserFeignClient所在的package。
即:

1
@EnableFeignClients({"com.tommy.config.feign"})

4.使用RestTemplate调用服务提供方返回List的服务问题

这里是在百度云视频第18节中看到的,比如服务提供方定义了一个接口返回List,调用方使用RestTemplate调用时返回的并不是List。

即下面的代码是错误的:

1
List<User> list = this.restTemplate.getForObject("http://microservice-springcloud-user/user/list",List.class);

应该改成

1
2
3
User[] users = this.restTemplate.getForObject("http://microservice-springcloud-user/user/list",User[].class);

List<User> list = Arrays.asList(users);

不过,我本地测试没有出现这个问题。

Donny wechat
欢迎关注我的个人公众号
打赏,是超越赞的一种表达。
Show comments from Gitment