Consul简介
Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司Go语言开发。
优点:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议,支持跨数据中心的WAN集群,提供图形界面,跨平台。
Consul下载地址:https://www.consul.io/downloads.html
Consul环境搭建
启动consul命令:consul agent -dev -ui -node=cy
-dev开发服务器模式启动,-node节点名为cy,-ui可以用界面访问,默认能访问。
测试访问地址:http://localhost:8500
Consul实现服务注册与发现
pom文件
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <!-- 管理依赖 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.M7</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- SpringBoot整合Web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- SpringCloud consul-server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> </dependencies> <!-- 注意:这里必须要添加,否则各种依赖有问题 --> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/libs-milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
配置文件application.yml
###服务端口号
server:
port: 8503
###服务名称
spring:
application:
name: consul-member
###consul注册中心地址
cloud:
consul:
###consul地址
host: localhost
###consul端口号
port: 8500
discovery:
###服务地址直接为ip地址
hostname: 192.168.48.1
主类
@RestController @SpringBootApplication @EnableDiscoveryClient public class ConsulMemberController { public static void main(String[] args) { SpringApplication.run(ConsulMemberController.class, args); } }