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服务注册与发现相关推荐

  1. Consul 服务注册与发现一站式解决方案

    Consul 服务注册与发现一站式解决方案 参考文章: (1)Consul 服务注册与发现一站式解决方案 (2)https://www.cnblogs.com/seattle-xyt/p/103660 ...

  2. SpringCloud从入门到放弃 03 ——Consul服务注册与发现

    文章目录 SpringCloud从入门到放弃 03 --Consul服务注册与发现 一.Consul简介 1.什么是consul 2.consul能做什么 二.安装并运行Consul 1.下载安装 2 ...

  3. Consul服务注册与发现

    Consul服务注册与发现 1.Consul简介 1.1 什么是Consul? 1.2 Consul能干什么? 1.3 下载Consul 2.安装并运行Consul 2.1 官网安装说明 2.2 使用 ...

  4. java consul服务发现_分布式项目(七)consul 服务注册与发现

    说到分布式自然就离不开分布式和微服务的话题,简单聊一下. 微服务是一种软件架构方式,或者说一个一种结构设计风格,它并不是标准,它的逻辑是把一个整体服务按业务拆分成不同独立的服务,降低服务强依赖,消服务 ...

  5. .NET Core + Consul 服务注册与发现

    在分布式架构中,服务治理是必须面对的问题,如果缺乏简单有效治理方案,各服务之间只能通过人肉配置的方式进行服务关系管理,当遇到服务关系变化时,就会变得极其麻烦且容易出错. Consul[1] 是一个用来 ...

  6. Spring Cloud入门 -- Consul服务注册与发现(Hoxton.SR5版)

    Consul简介 Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现.服务隔离.服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能.Cons ...

  7. consul服务注册与发现机制

    注册中心引入 最近,网关服务让下游服务接入consol,为了解决网关转发下游服务,下游服务刚好有节点不可用,转发到不可用的节点上报错.针对分布式多节点,上面的问题常会发生,就引入了注册中心. 那什么是 ...

  8. php consul 服务注册,CentOS 安装 Consul 服务注册和发现软件

    1,关于Consul Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现. 有了很多实用的功能. 一致性协议采用 Raft 算法,来保证服务的高可用. 项目 ...

  9. Consul 服务注册与发现03—— 服务消费者

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

最新文章

  1. 图的邻接矩阵存储结构
  2. 一些与oracle相关的关于查询锁的信息
  3. TensorFlow学习笔记(十二)TensorFLow tensorBoard 总结
  4. SAP CRM WebClient UI的on_new_focus应该怎么理解
  5. 闲来没事写个记事本玩玩!!!
  6. 下列哪个不是java的数据类型_下面哪个不是Java基本数据类型?()
  7. python计算PR曲线sklearn.metrics.precision_recall_curve
  8. 学成在线首页——静态页面基础项目(HTML+CSS)【学习笔记】
  9. 线性代数复盘 | 同济大学工程数学第六版第二章思维导图笔记——矩阵及其运算(复习专用)
  10. HashMap 底层
  11. 目标跟踪 | 目标跟踪算法总结
  12. Adobe Premiere基础-编辑素材文件常规操作(脱机文件,替换素材,素材标签和编组,素材启用,便捷调节不透明度,项目打包)(十七)
  13. 计算机加号公式,怎样在excel表格中显示加号,而不被当成是公式来计算
  14. 皮肤水分检测原理及测量电路分析
  15. 数学系列:数学在计算机图形学中的应用
  16. 山东大学软件工程应用与实践——WeaselTSF(一)
  17. 好用的桌面便签工具-Microsoft便笺
  18. 硬盘分区管理软件,硬盘分区软件哪个好用
  19. win 2012 iis 401 - 未授权: 由于凭据无效,访问被拒绝。您无权使用所提供的凭据查看此目录或页面,百度编辑器等图片无法显示
  20. qt调试android程序崩溃,使用qt5开发的Android应用程序合并了AWS C++库崩溃

热门文章

  1. 华钜同创:跨境电商卖家培训如何打造优质社媒内容
  2. 如何快速升级 Cocos Shader 版本,以简易水shader为例
  3. 07 zsb C练习上机(二)
  4. Python Numpy中的范数
  5. vuetify(UI框架)
  6. R语言安装本地包、Warning in system(cmd) : ‘make‘ not found、安装和R版本匹配的Rtools
  7. 广州python培训机构排名
  8. 多标签分类 评价指标_多标签分类指标
  9. 软件工程中常见的工具介绍
  10. 关于abaqus中Mises应力分量的理解