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;
    }
}

结果如下图:

上一篇 下一篇

猜你喜欢

热点阅读