Spring Cloud Consul项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中为我们的基础设施提供服务发现和服务配置的工具。它包含了下面几个特性:
服务发现 、健康检查、Key/Value存储、多数据中心。
由于Spring Cloud Consul项目的实现,我们可以轻松的将基于Spring Boot的微服务应用注册到Consul上,并通过此实现微服务架构中的服务治理。
利用Idea的Spring Initializr来快速构建Spring Boot/Cloud工程,勾选Cloud Discovery下的Consul Discovery,直接点下一步创建工程
先修改配置文件,在Resources下的application.propertitie
spring.application.name=consul-clent
server.port=1994
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
再在Applicatin主类加上 注解
package com.example.consul;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class MyConsulApplication {
public static void main(String[] args) {
SpringApplication.run(MyConsulApplication.class, args);
}
}
再新建一个DoController类,代码如下:
package com.example.consul;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author cyy
* @date 2018年8月2日21:51:47
*/
@RestController
public class DoController {
@Autowired
DiscoveryClient discoveryClient;
@GetMapping("/dc")
public String dc(){
String services = "Services: " + discoveryClient.getServices();
System.out.println(services);
return services;
}
}
然后参考:如何在本地安装Consul;
安装好了后,在本地用CMD命令启动consul的开发模式:
consulagent -dev
consul服务端启动完成之后,我们再将之前改造后的consul服务提供者启动起来。consul与eureka一样,都提供了简单的ui界面来查看服务的注册情况:
也可以访问:http:localhost:1994/dc
更多关于Consul的使用指南,读者可查看官方文档:https://www.consul.io/
参考博客:http://blog.didispace.com/spring-cloud-starter-dalston-1/