spring cloud consul 服务治理
对照系统安装响应consul文件(以window为例)
解压文件之后配置环境,进入Path添加文件所在目录,
测试:在文件所在目录下进入指令操作 输入 consul agent -dev
启动成功,在网址上输入 localhost:8500进入服务界面
创建生产者和消费者
配置文件内容如下
spring:
application:
name: consulserver
cloud:
consul:
host: 127.0.0.1
port: 8500
discovery:
register: true
serviceName: ${spring.application.name}
healthCheckPath: /actuator/health
healthCheckInterval: 15s
tags: dev
instanceId: ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}}
hostname: 127.0.0.1
port: ${server.port}
health-check-url: http://127.0.0.1:8081/actuator/health
enabled: true
query-passing: true
enabled: true
server:
port: 8081
消费者register:为false,因为消费者是消费方不需要注册到服务中
消费者controller(通过ribbon获取内容)
@EnableDiscoveryClient
@SpringBootApplication
@RestController
public class GpsconsulclientApplication {
//使用ribbon进行获取生产者信息
@Autowired
private LoadBalancerClient loadBalancer;
@Autowired
private DiscoveryClient discoveryClient;
/**
* 从所有服务中选择一个服务(轮询),必须是健康的服务 status:up
*/
@RequestMapping("/discover")
public Object discover(String name) {
return loadBalancer.choose(name).getUri().toString();
}
/**
* 获取名称为name的所有服务信息,包括status:down的服务
*/
@RequestMapping("/services")
public Object services(String name) {
return discoveryClient.getInstances(name);
}
// 获取所有服务
@RequestMapping("/getServices")
public Object getServices(){
return discoveryClient.getServices();
}第二种方法下边通过fegin(接口的方式进行获取内容)具体参考原文地址如下:https://www.jianshu.com/p/562045489d9dhttp://www.voidcn.com/article/p-kgydkhnl-ee.html