目录
- Consul简介
-
Consul安装与使用
-
注册服务提供者
- 引入依赖
- 配置yml
- 添加注解
- 编写Controller
- 测试
- 注册服务消费者
- 源码下载
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 ,将会调用提供者的接口,完成需求。

源码下载
本系列文章为《尚硅谷SpringCloud教程》的学习笔记【版本稍微有些不同,后续遇到bug再做相关说明】,主要做一个长期的记录,为以后学习的同学提供示例,代码同步更新到Gitee:https://gitee.com/tqbx/spring-cloud-learning,并且以标签的形式详细区分每个步骤,这个系列文章也会同步更新。 (编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|