Consul简介
官网: https://www.consul.io/docs/intro
Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用go语言开发。
提供了微服务系统中的服务治理、配置中心、控制总线等功能,他们可以单独使用,也可一起使用构建全方位的服务网格。 总之,Consul提供了一种完整的服务网格解决方案。
关键特性:
- Service Discovery服务发现
- Health Checking健康检查
- KV Store键值对存储
- Secure Service Communication安全的服务通信
- Multi多数据中心
Consul安装与使用
Windows安装
进入下载界面:https://www.consul.io/downloads
在consul.exe同级目录中打开控制台,执行:
consul --version #查看版本
consul agent -dev #开发者模式启动
Docker安装
直接看这篇文章就好了:Docker安装Consul
注册服务提供者
引入依赖
<!--SpringCloud consul-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
配置yml
#consul服务端口号
server:
port: 8006
spring:
application:
name: consul-provider-payment
#consul注册中心地址
cloud:
consul:
host: 127.0.0.1
port: 8500
discovery:
#hostname: 127.0.0.1
service-name: ${spring.application.name}
添加注解
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentConsul8006Application {
public static void main(String[] args) {
SpringApplication.run(PaymentConsul8006Application.class, args);
}
}
编写Controller
@RestController
@Slf4j
public class PaymentController {
@Value("${server.port}")
private String serverPort;
@GetMapping(value = "/payment/consul")
public String paymentConsul() {
return "spring cloud with consul: " + serverPort + "\t " + UUID.randomUUID().toString();
}
}
同样的,我们希望将这个服务注册进Consul服务中心。
测试
我们启动PaymentConsul8006Application,再查看localhost:8500/:
注册服务消费者
pom,yml,启动类注解差不太多,这里就不赘述了,感兴趣可以查看仓库代码:
https://gitee.com/tqbx/spring-cloud-learning
以标签的形式详细区分每个步骤。
当我们同时启动消费者和提供者,Consul中就会注册进两个service。消费者访问
localhost/consumer/payment/consul
将会调用提供者的接口,完成需求。
原文链接:https://www.cnblogs.com/summerday152/p/14013553.html
如果觉得本文对你有帮助,可以转发关注支持一下
本文暂时没有评论,来添加一个吧(●'◡'●)