Consul 学习笔记(一)之初识

Github仓库:https://github.com/sunweisheng/spring-cloud-example

https://www.cnblogs.com/bluersw/p/11610711.html

https://spring.io/projects/spring-cloud-consul

https://learn.hashicorp.com/consul/getting-started/agent

https://www.cnblogs.com/cuishuai/p/8194345.html

https://www.consul.io/docs/internals

一、概念介绍

1、consul 用途

    cosnul 维护服务状态,在项目中运行的所有服务都需要注册到 consul 中,当服务要调用另外一个服务的接口时,需要从consul 查询目标服务所有实例地址,从中进行负载均衡选择某个服务实例,进行接口调用。 总而言之,consul 主要能力是为远程调用时寻址服务提供支持。

2、consul 总体部署结构

(1) 数据中心(DataCenter)

    当consul 部署在不同的区域管理不同的服务时,每个区域形成各自私有的局域网,此时称这个区域为数据中心,在同个数据中心中部署了多个 consul server 就形成了 consul集群,每个consul server 称之为一个 consul 实例。

(2) consul client

  • 数据中心有多个服务对外提供了能力,需要使用服务提供能力的调用方(也是一个服务)通过RPC进行接口调用,此时对外提供能力的服务必须将自己注册到 consul server 中,声明自己的 IP、端口、服务名。
  • 服务所在服务器/虚拟机上可以部署一个consul client (一个机器上部署一个);
  • 服务将自己注册到 consul client 上;
  • consul client 将注册信息注册到consul server上;
  • consul client 始终 和 服务保持心跳,用以记录服务是否正常运行;若不正常,consul client 告知 consul server;
  • 服务通过consul client 寻址另个服务所有实例访问地址,consul client 将查询请求转发给 consul server;

    为了保证 consul server 的 高可靠性 和 高可用性,consul server 需要在数据中心中组成集群,以此保证一个consul server 异常,其他 consul server 仍正常工作,对于服务无故障感知。具体组成集群要求 见 《Consul 学习笔记(二)之 高可靠性》

二、实操进行搭建

1、下载

(1) 下载地址为:https://learn.hashicorp.com/consul

 在图中的 download 提供的页面中选择合适的 consul 包进行下载,本次要安装在Linux 服务器上,所以选择下载的版本为:consul_1.8.0_linux_amd64.zip

2、安装

(1) 上传到linux服务器上

(2) 解压: unzip -d consul consul_1.8.0_linux_amd64.zip  将 zip包解压到当前目录下的consul 子目录中

(3) 添加环境变量

  本示例将其添加到所有用户可见的环境变量中,因此直接编辑了 /etc/profile文件

  • vim /etc/profile  

        在末尾添加  ;

  • source /etc/profile   重新加载 profile 文件,让添加的环境变量生效
  • echo $PATH    查看当前环境变量

  •  consul     校验是否安装成功

3、运行

    consul 所有节点 均是运行在 agent上的,在启动时分为 server 模式 和 client 模式。

(1) client 模式运行

    

(2) server 模式

三、内部原理

1、如何注册与服务发现

4、高可用如何保证

猜你喜欢

转载自www.cnblogs.com/sandyflower/p/12930681.html