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/562045489d9d

猜你喜欢

转载自www.cnblogs.com/tflike/p/10024796.html