SpringCloud-eureka-02服务发现
2019-07-10 本文已影响0人
天的安排
consumer端的配置文件
#修改server port
server.port=9001
# 连接池的配置信息
# 初始化大小,最小,最大
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
#这个配置当filter中没有设置wall的时候,启动是ok的,反之则报错,谨记谨记!
#spring.datasource.druid.db-type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.db-type=mysql
spring.datasource.druid.url=jdbc:mysql://192.168.200.245:2060/ltttest?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior=convertToNull
spring.datasource.druid.username=root
spring.datasource.druid.password=&i5Sb_oV<>km
#====================================eureka配置=========================================
spring.application.name=eureka-client-9001
# 指定eureka server通信地址,注意/eureka/不能少
eureka.client.service-url.defaultZone=http://localhost:10002/eureka/
# 是否注册IP到eureka server,如不指定或设为false,那就会注册主机名到eureka server
eureka.instance.prefer-ip-address=true
启动类上注意加上注解@EnableDiscoveryClient
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
@EnableDiscoveryClient
//@EnableEurekaClient
public class ApplicationConsumer001 {
private static Logger logger = Logger.getLogger(ApplicationConsumer001.class);
/**
* Start
*/
public static void main(String[] args) {
SpringApplication.run(ApplicationConsumer001.class, args);
// logger.info("SpringBoot Start Success");
}
}
配置bean
@Configuration
public class ConfigBean {
@Bean
// @LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
服务发现,首先依赖公共的model,其次使用DiscoveryClient获取uri,最后使用RestTemplate调用
@Controller
@RequestMapping("/consumer001")
public class UserConsumerController {
private Logger logger = Logger.getLogger(UserConsumerController.class);
@Autowired
private RestTemplate restTemplate;
@Autowired
private DiscoveryClient discoveryClient;
@RequestMapping("/getUserInfo")
@ResponseBody
public List<User> getUserInfo() {
System.out.println("_______________*********"+serviceUrl());
return restTemplate.postForObject(serviceUrl() +"/getUserInfo",null,List.class);
}
public String serviceUrl(){
List<ServiceInstance> list = discoveryClient.getInstances("SPRINGBOOT-MYBATIS-PROVIDER-001");
if (list != null && list.size() >0 ){
return String.valueOf(list.get(0).getUri());
}
return null;
}
}
结果如下图:
![](https://img.haomeiwen.com/i14757514/0c817fe96ed154ed.png)