标签:work 没有 target 包括 解决 cat app 数据 减压
Consul 是一种服务网格解决方案,提供具有服务发现、配置和分段功能的全功能控制平面。每个功能都可以根据需要单独使用,也可以一起使用以构建完整的服务网格。
主要包括服务发现,健康检查,KV存储,安全服务通信和多数据中心,本文主要讲解的是其服务发现和健康检查。
本文主要基于的是新手的练习使用,故在windows进行了安装和使用,其实关于Consul的安装使用在网上教程有很多,我在Linux和windows都试了,windows的入手简单,Linux的话,如果使用docker,可能回出现服务健康检查不通过的现象,因为在服务端的心跳检测发送的请求回发生问题,要是正常安装在Linux应该是没有问题的,这个我没有验证。关于安装步骤,我也放在了本文最后的参考链接,有兴趣的可以自行查看。
本文主要是为了新手简单的练习使用Consul的使用方法(当作注册中心,暂时没有涉及到其它部分),服务调用还是用到了ribbon。
新建SpringBoot项目 springcloud-consul-a,并且导入pom依赖(没有加版本是因为写了maven的pom包):
<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>
<!--SpringCloud consul-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
新建application.yml配置文件:
server:
port: 8888
spring:
application:
name: springcloud-consul-a
freemarker:
suffix: .ftl
cloud:
consul:
host: 127.0.0.1 #用linux的ip地址(consul在本机就填localhost)
port: 8500
discovery:
service-name: ${spring.application.name}
启动类上加注解:
@EnableDiscoveryClient
新建两个服务相互调用的demo:
@RestController
public class UserController {
static final String URL="http://springcloud-consul-b";
@Value("${server.port}") //获取端口号
private String serverPort;
@Value("${spring.application.name}")
private String serverName;
@Autowired
RestTemplate restTemplate;
@GetMapping("getInfo/{name}")
public String getServerInfo(@PathVariable("name")String name){
if(StrUtil.isBlank(name)){
return "请输入参数!";
}
if("a".equals(name)){
return "响应服务名称:"+serverName+" 端口号:"+serverPort+" 时间戳:"+ DateUtil.now();
}else {
return restTemplate.getForObject(URL+"/getInfo/"+name,String.class);
}
}
}
仿照 springcloud-consul-a 新建 springcloud-consul-b 并修改对应配置文件中的 端口号和服务名。
在windows下,下载文件然后减压缩,并且把该文件位置加入到path环境(和Java一样)中(我的就是D:\EdgeDoDownLoad\consul_1.9.0_windows_amd64加入path中):
进入文件夹,打开命令行窗口(cmd),运行该exe文件
consul agent -dev
打开浏览器并访问:
http://localhost:8500/
启动项目 springcloud-consul-a 和 springcloud-consul-b,再看consul服务端:
两个服务之间相互调用:
https://blog.csdn.net/forezp/article/details/70188595
https://blog.csdn.net/xulong5000/article/details/90233478
https://www.consul.io/docs/intro
https://blog.csdn.net/liuzhuchen/article/details/81913562
标签:work 没有 target 包括 解决 cat app 数据 减压
原文地址:https://www.cnblogs.com/Anxc/p/14198981.html