臧克家:“有的人…”
Eureka:“滚”
上编文章:SpringCloud+Zookeeper 实现服务注册,本编文章主要讲解SpringCloud+Consul 实现服务注册
1.什么是Consul
Consul 是一套开源的分布式服务发现和配置管理系统,有HashiCorp公司用Go语言开发。它提供了微服务系统中的服务治理,配置中心,控制总线等功能,这些功能可以根据需求单独使用,也可以一起构建全方位的服务网格,它提供了一种完整的服务网格解决方案。
1.1 Consul的主要特点
- 服务发现:Consul的客户端可以注册服务,例如 api或mysql,其他客户端可以使用Consul来发现给定服务的提供者。使用DNS或HTTP,应用程序可以轻松找到它们依赖的服务
- 健康检查:领事客户端可以提供任何数量的健康检查,这些健康检查可以与给定服务(“ Web服务器是否返回200 OK”)或与本地节点(“内存利用率低于90%”)相关联。操作员可以使用此信息来监视群集的运行状况,服务发现组件可以使用此信息将流量路由到运行状况不佳的主机之外。
- KV存储:应用程序可以将Consul的分层键/值存储用于多种目的,包括动态配置,功能标记,协调,领导者选举等。简单的HTTP API使其易于使用。
- 安全的服务通信:Consul可以为服务生成和分发TLS证书,以建立相互TLS连接。 意图 可用于定义允许哪些服务进行通信。可以使用可以实时更改的意图轻松管理服务分段,而不用使用复杂的网络拓扑和静态防火墙规则
- 多数据中心:Consul开箱即用地支持多个数据中心。这意味着Consul的用户不必担心会构建其他抽象层以扩展到多个区域
1.2 Consul的安装
下载地址:https://www.consul.io/downloads
这里为了方便,我下载了windows版本,自己可以根据需要下载对应版本
下载的文件解压即可,可以复制链接在迅雷下载,官网比较慢,解压后只有一个 consul.exe 文件。
通过 cmd 命令行,进入 consul.exe 所在的目录,使用命令:consul --version 可以来查看版本号;通过命令:consul agent -dev 使用开发模式启动。
通过 http://localhost:8500 进入web管理页面
至此,安装启动完成。
2.服务提供者:
2.1 在父工程下,新建Module : cloud-providerconsul-payment8006
2.2 引入相关依赖:
<!--整合 springcloud-consul 依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>