一,Consul的简介
Consul是一套开源的分布式服务发现和配置管理系统,由HashICorp公司用GO语言开发Consul提供了微服务系统中的服务治理,配置中心,控制总线等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网络,总之Consul提供了一种完整的服务网格解决方案
Consul的优点:
- 基于raft协议,比较简洁
- 支持健康检查
- 支持HTTP和DNS协议
- 支持数据中心的WAN集群
- 提供图形化界面
- 跨平台,支持Linux,Mac,Windowns
Consul的功能:
- 服务发现:提供HTTP和DNS两种发现方式
- 健康检测:支持多种方式Http,TCP,Docker,Shell脚本定制化
- KV存储:Key,Value的存储方式
- 多数据中心:Consul支持多数据中心
二,安装Consul(Linux)
安装命令(复制粘贴):
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install consul
启动Consul:
consul agent -dev -ui -node=consul-dev -client=本地IP地址
三,使用Consul作为注册中心
新建一个模块并配置(cloud-Consul-server)
① 父工程的maven依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
<lombok.version>1.18.10</lombok.version>
<mybatis.spring.boot.version>2.1.1</mybatis.spring.boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
② 导入依赖
<dependencies>
<dependency>
<groupId>com.cloud.commons</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--consul依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
</dependencies>
③ 配置application文件
server:
port: 9093
spring:
application:
name: cloud-consul-server
cloud:
consul:
host: 192.168.68.134 #consul地址
port: 8500 #consul端口,默认位8500
discovery:
service-name: ${spring.application.name} #服务名称
④ 主文件
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulMain {
public static void main(String[] args) {
SpringApplication.run(ConsulMain.class,args);
}
}
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109