Consul
Consul 是一套开源的分布式服务发现和配置管理系统,它提供了一种完整的服务网格解决方案,具有如下优点:
服务发现:提供HTTP和DNS两种发现方式
健康检测:支持HTTP、TCP、Docker、Shell等方式
KV存储:key-value的存储方式
多数据中心:Consul支持多数据中心
可视化 Web 界面
一.consul安装
consul安装包下载:https://www.consul.io/downloads
windows版本
查看consul版本
consul --version
# 开发者模式启动
consul agent -dev
访问 http://localhost:8500 即可访问可视化的 Web 页面。
二.项目搭建
1.项目pom.xml添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
2.项目的application.yml/properties添加consul配置
server:
port: 8004
spring:
application:
name: cloud-provider-payment
cloud:
consul:
host: localhost
port: 8500
discovery:
service-name: ${spring.application.name}
3.项目启动类加 @EnableDiscoveryClient注解
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8004 {
public static void main(String[] args){
SpringApplication.run(PaymentMain8004.class,args);
}
}
================================================
三:服务调用端配置
Consul 消费端
我们创建一个 spring-cloud-consul-consumer 项目,pom 文件和上面示例保持一致。
配置文件
配置文件内容如下
spring.application.name=spring-cloud-consul-consumer
server.port=8503
spring.cloud.consul.host=127.0.0.1
spring.cloud.consul.port=8500
#设置不需要注册到 consul 中
spring.cloud.consul.discovery.register=false