七、consul服务注册与发现
1、Consul简介
是什么?
Consul是一套开源的分布式服务发现的配置管理系统,由HashiCorp用go语言开发
提供了微服务系统中的服务治理,配置中心,控制总线等功能。这些功能中的每一个可以根据需要单独使用,也可以一起
使用构建全方位的服务网络,总之Consul提供了一种完整的服务网格解决方案
能干嘛?
去哪下载?
怎么使用 (中文版 需要仔细学的话可以看这里!)
Spring Cloud Consul 中文文档 参考手册 中文版
2、运行并安装 Consul
下载完成后解压:
在consul.exe的目录下 cmd
输入命令 :consul agent -dev (以开发者模式启动consul)
访问 http://localhost:8500
3、服务提供者注册进consul
我这里就标注下依赖和配置文件,不想粘贴了
① pom文件
<dependencies><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --><dependency><groupId>com.atguigu.springcloud</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</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><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>RELEASE</version><scope>test</scope></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>RELEASE</version><scope>test</scope></dependency>
</dependencies>
②、yml文件
server:port: 8006
spring:application:name: consul-provider-payment#consul服务注册中心地址cloud:consul:host: localhostport: 8500discovery:# 本服务向外暴露的服务名service-name: ${spring.application.name}
③ 主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8006 {public static void main(String[] args) {SpringApplication.run(PaymentMain8006.class,args);}
}
④、业务类
@RestController
@Slf4j
public class PaymentController {@Value("${server.port}")private String serverPort;@RequestMapping(value = "/payment/consul")public String paymentzk(){return "springcloud with consul:"+ serverPort+ " "+ UUID.randomUUID().toString();}
}
4、服务消费者注册进consul
① pom文件
<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>
②、配置文件
server:port: 80
spring:application:name: cloud-consumer-ordercloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}
③ 主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class OrderMainConsul80 {public static void main(String[] args) {SpringApplication.run(OrderMainConsul80.class,args);}
}
④、调用consul-payment8006服务
@RestController
@Slf4j
public class OrderConsulController {private 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;}
}
查看:发现服务消费者 和 提供者确实注册进了consul
订单服务消费者远程调用支付提供者的服务成功!
5、三个注册中心的异同点
由于是分布式服务,所以p(分区容错性)是必占的,要么ap,要么cp
AP : eureka
CP: zookeeper 、 consul
七、consul服务注册与发现相关推荐
- Consul 服务注册与发现一站式解决方案
Consul 服务注册与发现一站式解决方案 参考文章: (1)Consul 服务注册与发现一站式解决方案 (2)https://www.cnblogs.com/seattle-xyt/p/103660 ...
- SpringCloud从入门到放弃 03 ——Consul服务注册与发现
文章目录 SpringCloud从入门到放弃 03 --Consul服务注册与发现 一.Consul简介 1.什么是consul 2.consul能做什么 二.安装并运行Consul 1.下载安装 2 ...
- Consul服务注册与发现
Consul服务注册与发现 1.Consul简介 1.1 什么是Consul? 1.2 Consul能干什么? 1.3 下载Consul 2.安装并运行Consul 2.1 官网安装说明 2.2 使用 ...
- java consul服务发现_分布式项目(七)consul 服务注册与发现
说到分布式自然就离不开分布式和微服务的话题,简单聊一下. 微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,降低服务强依赖,消服务 ...
- .NET Core + Consul 服务注册与发现
在分布式架构中,服务治理是必须面对的问题,如果缺乏简单有效治理方案,各服务之间只能通过人肉配置的方式进行服务关系管理,当遇到服务关系变化时,就会变得极其麻烦且容易出错. Consul[1] 是一个用来 ...
- Spring Cloud入门 -- Consul服务注册与发现(Hoxton.SR5版)
Consul简介 Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现.服务隔离.服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能.Cons ...
- consul服务注册与发现机制
注册中心引入 最近,网关服务让下游服务接入consol,为了解决网关转发下游服务,下游服务刚好有节点不可用,转发到不可用的节点上报错.针对分布式多节点,上面的问题常会发生,就引入了注册中心. 那什么是 ...
- php consul 服务注册,CentOS 安装 Consul 服务注册和发现软件
1,关于Consul Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现. 有了很多实用的功能. 一致性协议采用 Raft 算法,来保证服务的高可用. 项目 ...
- Consul 服务注册与发现03—— 服务消费者
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
最新文章
- 图的邻接矩阵存储结构
- 一些与oracle相关的关于查询锁的信息
- TensorFlow学习笔记(十二)TensorFLow tensorBoard 总结
- SAP CRM WebClient UI的on_new_focus应该怎么理解
- 闲来没事写个记事本玩玩!!!
- 下列哪个不是java的数据类型_下面哪个不是Java基本数据类型?()
- python计算PR曲线sklearn.metrics.precision_recall_curve
- 学成在线首页——静态页面基础项目(HTML+CSS)【学习笔记】
- 线性代数复盘 | 同济大学工程数学第六版第二章思维导图笔记——矩阵及其运算(复习专用)
- HashMap 底层
- 目标跟踪 | 目标跟踪算法总结
- Adobe Premiere基础-编辑素材文件常规操作(脱机文件,替换素材,素材标签和编组,素材启用,便捷调节不透明度,项目打包)(十七)
- 计算机加号公式,怎样在excel表格中显示加号,而不被当成是公式来计算
- 皮肤水分检测原理及测量电路分析
- 数学系列:数学在计算机图形学中的应用
- 山东大学软件工程应用与实践——WeaselTSF(一)
- 好用的桌面便签工具-Microsoft便笺
- 硬盘分区管理软件,硬盘分区软件哪个好用
- win 2012 iis 401 - 未授权: 由于凭据无效,访问被拒绝。您无权使用所提供的凭据查看此目录或页面,百度编辑器等图片无法显示
- qt调试android程序崩溃,使用qt5开发的Android应用程序合并了AWS C++库崩溃
热门文章
- 华钜同创:跨境电商卖家培训如何打造优质社媒内容
- 如何快速升级 Cocos Shader 版本,以简易水shader为例
- 07 zsb C练习上机(二)
- Python Numpy中的范数
- vuetify(UI框架)
- R语言安装本地包、Warning in system(cmd) : ‘make‘ not found、安装和R版本匹配的Rtools
- 广州python培训机构排名
- 多标签分类 评价指标_多标签分类指标
- 软件工程中常见的工具介绍
- 关于abaqus中Mises应力分量的理解