汉阳网站建设公司/活动营销推广方案
目录
一、consul是什么
二、consul能做什么
一、服务发现
二、健康监测
三、KV存储
四、多数据中心
五、可视化web界面
三、consul怎么用
一、安装consul
二、服务提供者注册进consul
1、创建module
2、修改pom文件
3、编写yml文件
4、编写主启动类
5、编写业务代码
6、运行测试
三、服务消费者注册进consul
1、创建module
2、修改pom文件
3、编写yml
4、编写主启动类
5、编写逻辑代码
6、运行测试
一、consul是什么
Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。
提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。
它具有很多优点。包括: 基于 raft 协议,比较简洁; 支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、Windows
二、consul能做什么
一、服务发现
提供HTTP和DNS两种发现方式。
二、健康监测
支持多种方式,HTTP、TCP、Docker、Shell脚本定制化监控。
三、KV存储
Key、Value的存储方式
四、多数据中心
Consul支持多数据中心
五、可视化web界面
三、consul怎么用
一、安装consul
可以在Windows下安装,也可以在linux下。
安装方法百度即可,可以参考consul怎么在windows下安装_筱进GG-CSDN博客_windows下安装consul
二、服务提供者注册进consul
1、创建module
创建普通maven模块 cloud-providerconsul-payment8006
2、修改pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>cloud</artifactId><groupId>com.shang.cloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloud-providerconsul-payment8006</artifactId><dependencies><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --><dependency><groupId>com.shang.cloud</groupId><artifactId>cloud-api-commons</artifactId><version>1.0-SNAPSHOT</version></dependency><!--SpringCloud consul-server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><!-- SpringBoot整合Web组件 --><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></dependency><!--日常通用jar包配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties></project>
3、编写yml文件
###consul服务端口号
server:port: 8006spring:application:name: consul-provider-payment####consul注册中心地址cloud:consul:host: localhostport: 8500discovery:#hostname: 127.0.0.1service-name: ${spring.application.name}
4、编写主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8006 {public static void main(String[] args) {SpringApplication.run(PaymentMain8006.class, args);}
}
5、编写业务代码
controller:
@RestController
@Slf4j
public class PaymentController {@Value("${server.port}")private String serverPort;@RequestMapping(value = "/payment/consul")public String paymentConsul(){return "springcloud with consul: "+ serverPort+"\t"+ UUID.randomUUID().toString();}
}
6、运行测试
在浏览器地址栏中输入
http://localhost:8500/
三、服务消费者注册进consul
1、创建module
创建普通maven模块cloud-consumerconsul-order80
2、修改pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>cloud</artifactId><groupId>com.shang.cloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloud-consumerconsul-order80</artifactId><dependencies><!--SpringCloud consul-server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><!-- SpringBoot整合Web组件 --><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></dependency><!--日常通用jar包配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>
3、编写yml
可以直接复制8006的yml,改一下端口即可
4、编写主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class OrderConsulMain80 {public static void main(String[] args) {SpringApplication.run(OrderConsulMain80.class, args);}
}
5、编写逻辑代码
(1)config包
与zookeeper中的config包一致
(2)controller包
@RestController
@Slf4j
public class OrderConsulController {public static final String INVOKE_URL = "http://consul-provider-payment";@Autowiredprivate RestTemplate restTemplate;@GetMapping(value = "/consumer/payment/consul")public String paymentInfo(){String result = restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);return result;}
}