# 从浅入深 学习 SpringCloud 微服务架构(五)Consul(2)

从浅入深 学习 SpringCloud 微服务架构(五)Consul(2)

段子手168

一、consul 集群:consul 集群的基础知识

1、启动 sonsul 服务命令:

以开发者模式快速启动:
consul agent -dev -client=0.0.0.0

agent: 表示启动一个 consul 的守护进程。

dev: 表示开发者模式。

client: 表示是 consul 代理,和 consul server 交互。
一个微服务对应一个 client ,微服务和 client 部署到一台机器上。

server: 真正干活的 consul 服务。一般部署 3-5个。

2、Gossip:流言协议

所有的 consu 都会参与到 gossip 协议中(多节点中数据赋值)。

在这里插入图片描述

3、Raft 协议:

保证 server 集群的数据一致。
Leader: 是 server 集群中唯一处理客户端请求的。
Follower: 相当于选民,被动接收数据。
候选人: 可以被选举为 leader。

过程:1)选主,2)数据同步。

官方网站演示 Raft 协议:
http://thesecretlivesofdata.com/raft/

二、consul 集群:搭建 consul 集群

在这里插入图片描述

consul 集群搭建说明:

首先需要有一个正常的 Consul 集群,有 Server, 有 Leader,
这里在服务器 Server1, Server2, Server3 上分别部署了 Consul Server。
这些服务器上最好只部署 Consul 程序,以尽量维护 Consul Server 的稳定。

服务器 Server4 上通过 Consul Client 注册 Service 1, 2, 3,
(一般微服务和 Client 绑定)。

1、准备环境,启动三台虚拟机,一个本地客户机:

192.168.74.101 server server-1 s1
192.168.74.102 server server-2 s2
192.168.74.103 server server-3 s3
192.168.71.1 client clent-1 s4

Agent 以 client 模式启动的节点。在该模式下,该节点会采集相关信息,
通过 RPC 的方式向 server 发送。Client 模式节点有无数个,官方建议搭配微服务配置。

Agent 以 server 模式启动的节点。一个数据中心中至少包含1个 server 节点。
不过官方建议使用3或5个 server 节点组建成集群,以保证高可用且不失效率。

server 节点参与 Raft、维护会员信息、注册服务、健康检查等功能。

2、安装 consul 并启动

1)在每个 consul 节点上安装 consuI 服务,下载安装过程和单节点一致。

– 从官网下载 Consu] 服务
wget https://releases.hashicorp.com/consu/1.5.3/consu1_1.5.3_1inux_amd64.zip

– 使用 unzip 命令解压
unzip consu11.5.3 inux_amd64.zip

– 将解压好的 consu] 可执行命令拷贝到 /usr/1ocal/bin 目录下
cp consul /usr/local/bin

– 测试一下
consu1

在这里插入图片描述

在这里插入图片描述

2)启动每个 consulserver 节点

– 登录 s1 虚拟机,以 server 形式运行
consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=server-1 -bind=192.168.74,101 -ui -cient 0.0.0.0 &

– 登录 s2 虚拟机,以 server 形式运行
consul agent -server -bootstrap-expect 2 -data-dir /etc/consul.d -node=server-2 -bind=192.168.74.102 -ui -client 0.0.0.0 &

– 登录 s3 虎拟机,以 server 形式运行
consul agent -server -bootstrap-expect 2 -data-dir /etc/consul.d -node=server-3 -bind=192.168.74.103 -ui -client 0.0.0.0 &

在这里插入图片描述

3)命令参数说明:

-server: 以 server 身份启动
-bootstrap-expect: 集群要求的最少 server 数量,当低于这个数量,集群即失效。

-data-dir: data 存放的目录,更多信息请参阅consul数据同步机制
-node: 节点 id,在同一集群不能重复。

-bind: 监听的ip地址。
-client: 客户端的 ip 地址 (0.0.0.0表示不限制)。

&: 在后台运行,此为 linux 脚本语法。

至此三个 Consul Server 模式服务全部启动成功。

3、在本地电脑中使用 client 形式启动 consu1

consul agent -client=0.0.0.0 -data-dir /etc/consul.d -node=client-1

在这里插入图片描述

4、每个节点加入集群:

在 S2, S3, S4 服务器上通过 consul join 命令加入 S1 中的 consul 集群中。

consul join 192.168.74.101

在这里插入图片描述

5、测试:

在任意一台服务器中输入 consul members 查看集群中的所有节点信息。

consul members

在这里插入图片描述

在这里插入图片描述

三、consul 集群:集群测试以及问题说明

1、Consul 常见问题–节点和服务注销

当服务或者节点失效,Consul 不会对注册的信息进行剔除处理,仅仅标记已状态进行标记(并且不可使用)。
如果担心失效节点和失效服务过多影响监控。可以通过调用HTTP API的形式进行处理。

节点和服务的注销可以使用 HTTP API:

注销任意节点和服务: /catalog/deregister
注销当前节点的服务: /agent/service/deregister/:service_id

如果某个节点不继续使用了,也可以在本机使用 consulleave 命令,
或者在其它节点使用 consulforce-leave 节点 ld。

2、Consul 常见问题–健康检查与故障转移

在集群环境下,健康检查是由服务注册到的 Agent 来处理的,
那么如果这个 Agent 挂掉了,那么此节点的健康检查就处于无人管理的状态。

从实际应用看,节点上的服务可能既要被发现,又要发现别的服务,
如果节点挂掉了,仅提供被发现的功能实际上服务还是不可用的。

当然发现别的服务也可以不使用本机节点,
可以通过访问一个 Nginx 实现的若干 Consul 节点的负载均衡来实现。

上一节链接请点击
# 从浅入深 学习 SpringCloud 微服务架构(五)Consul(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

13.JAVAEE之HTTP协议

HTTP 最新的版本应该是 HTTP/3.0 目前大规模使用的版本 HTTP/1.1 使用 HTTP 协议的场景 1.浏览器打开网站 (基本上) 2.手机 APP 访问对应的服务器 (大概率) 学习 HTTP 协议, 重点学习 HTTP 的报文格式 前面的 TCP/IP/UDP 和这些不同, HTTP 的报文格式,要分两个部分来看待.请求…

移动端日志采集与分析最佳实践

前言 做为一名移动端开发者,深刻体会日志采集对工程师来说具有重要意义,遇到问题除了 debug 调试就是看日志了,通过看日志可以帮助我们了解应用程序运行状况、优化用户体验、保障数据安全依据,本文将介绍日志采集的重要性、移动端…

高级防爬还得是公众号

平时一天也就1K的流量,最近流量暴涨,已经用自研的WAF防火墙阻挡了很多恶意攻击和爬虫,已经过滤掉很多低级攻击和爬取了。 多出的流量,也仅仅多了一个导航 dh.yu7s.com 用户,多时没有用的机器人爬虫,不封掉浪…

EXCEL表格中的数字,为什么每次打开会自动变成日期?

一、典型现象 在工作中,有时会发现公司里的报表,经过多人多次的重复的使用和修改后,会出现这种情况: 1.在表格里按照需要输入数字,保存工作簿。 2.然而,再次打开工作簿,里面的数字变成日期&a…

c#学习入门2

十、运算符 1)算术运算符是用于数值类型变量计算的运算符,它返回的结果是数值 1.赋值符号 2.算数运算符 加 减- 乘* 除/ 取余% 3.算数运算符的优先级 4.算术运算符的复合运算 5.算术运算符的自增减 2)字符串拼接 1.字符串拼接方式1 注意&…

自定义View-旋转变色圆角三角形的绘制

本文字数:3151字 预计阅读时间:20分钟 在现代设计中,动效图在APP的UI界面中所起到的作用无疑是显著的。相比于静态的界面,动效更符合人类的自然认知体系,它有效地降低了用户的认知负载,UI动效俨然已经成为了…

错误代码126:加载d3dcompiler_43.dll失败,分享多种解决方法

在正常使用电脑的过程中,当我尝试启动并运行一款心仪的游戏时,系统却突然弹出一个令人困扰的错误提示“错误代码126:加载d3dcompiler_43.dll失败”,它会导致游戏无法正常运行。为了解决这个问题,我经过多次尝试和总结,…

Docker容器配置进阶

一、容器的自动重启 Docker提供重启策略选项控制容器退出时或Docker重启时是否自动启动该容器。重启策略能够确保关联的多个容器按照正确的顺序启动。Docker建议使用重启策略,并避免使用进程管理器启动容器。运行容器时可以使用--restart选项指定重启策略。容器的重…

VMware ESXi虚拟机备份的方法和步骤

关于虚拟机备份 VMware ESXi 是 VMware vSphere 企业虚拟化套件的核心组件。在版本4.1之前,它一直被称为ESX。ESXi是一种裸机管理程序,直接安装在物理服务器上,它提供对底层资源的直接访问和控制,允许您在单个物理主机上创建和运…

网鼎杯-2018-unfinish解题方法

BUUCTF在线评测这里可以解题无需搭建 进入这题后我们会得到这样一个界面 这里我们会发现登录不进去也没有注册界面以及源码,这里我们需要获取它其他的一些界面找注入机会,这里有两种方式找其他界面,一种是猜这里是登录界面那么必定就会有注册…

网络安全新挑战:通用人工智能(AGI)等级保护指南

通用人工智能(AGI)的发展现状及趋势 随着2023年大语言模型应用的划时代突破,以ChatGPT为杰出代表的此类技术犹如一股洪流,彻底颠覆了人类与机器智能交互的疆界,引领通用人工智能(AGI)步入一个崭…

Flume 搭建和操作使用的详细教程

下载 官网下载: https://flume.apache.org/download.html 安装 基本上不需要做什么配置,下载后解压即可使用!! 下载安装包:apache-flume-1.11.0-bin .tar.gz 上传至 linux 的 /opt/ 目录下 解压至 /opt/apps(可以自定义目录) 修改简短名称(方便配置) 配置环境变量(方…

国家开放大学2024年春《国家赔偿法-山东》形成性考核一二三四终结性考试参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 【单选题】张某重伤他人被刑事拘留。一个月后,公…

Vue typescript 获得html 元素

方法一 getElementById or something else <div class"book-navbar-menutree" id"menuTree" name"menuTree"> onMounted(() > { var menu document.getElementById(menuTree) as HTMLElementmenu.innerHTML menuTreeStr.value }) …

[SWPUCTF-2022-新生赛]ez_sql

title:[SWPUCTF 2022 新生赛]ez_sql 审题 根据提示&#xff0c;POST传参 得到假的flag 判断类型 字符型注入 判断列数 发现空格和’or’被过滤 重新构造 nss-1/**/oorrder/**/by/**/4#发现为3个字段 采用联合注入union 爆库 发现union被过滤&#xff0c;双写union绕过 发…

【小迪安全2023】第58天:服务攻防-应用协议设备KibanaZabbix远控向日葵VNCTV

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

腾讯云邮件推送如何设置?群发邮件的技巧?

腾讯云邮件推送功能有哪些&#xff1f;怎么有效使用邮件推送&#xff1f; 腾讯云邮件推送以其稳定、高效的特点&#xff0c;受到了众多企业的青睐。那么&#xff0c;腾讯云邮件推送如何设置呢&#xff1f;又有哪些群发邮件的技巧呢&#xff1f;下面AokSend就来详细探讨一下。 …

C++ ─── 匿名对象+变量的创建顺序

目录 1. 匿名对象&#xff08;临时对象&#xff09; 2. 编译器的优化 3.变量的创建与销毁 1. 匿名对象&#xff08;临时对象&#xff09; 我们先来看有名对象的创建 Date d1; Date d2(2024,4,27);匿名对象的创建 Date(2024,56,1); 生成了一个匿名对象&#xff0c;执行完Da…

photoshop如何使用PS中的吸管工具吸取软件外部的颜色?

第一步&#xff0c;打开PS&#xff0c;随意新建一个画布&#xff0c;或打开一个图片。 第二步&#xff0c;将PS窗口缩小&#xff0c;和外部窗口叠加放置&#xff0c;以露出后面的其它页面。 第三步&#xff0c;选中吸管工具&#xff0c;在PS窗口内单击一点吸取颜色&#xff0c;…

江开2024年春《心理健康 060211》过程性考核作业二参考答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 单选题 1提出理性情绪疗法的心理学家是&#xff08; &a…