4.RabbitMQ运维

本文主要总结集群以及仲裁队列,任期这三个大点及细节:

一.集群:

1.是什么:

把多台独立的服务器,组合成一个整体对外提供服务.就是集群.

**2.搭建集群的方式:**①:多级多节点(生产常用)

②:单机多节点(伪集群,单台电脑学习用)

问题:对于多个节点时,在宕机演示后(停掉某个节点)-->该节点队列数据会丢失

解决方案:引入****仲裁队列

作用: 可以防止一个节点宕机时,队列仍可提供服务效果

二.仲裁队列:

1.是什么: RabbitMQ的仲裁队列是一种基于Raft一致性算法 实现的持久化,可复制的FIFO队列.

仲裁队列提供队列复制的能力,保障数据的高可用和安全性.使用仲裁队列可以在RabbitMQ节点间进行队列数据的复制,从而达到一个节点宕机时,队列仍可提供服务的效果

比如:3台电脑A,B,C,都存同一个订单队列的数据,A、B、C 各自就是副本,从3台中选举出一台Leader,其余为Follow

2.Raft算法:

<1>是什么:Raft 是一种共识算法

**<2>作用:**他可以用于管理和维护分布式系统一致性

**<3>.三种角色:**①:Follow(跟随者)\

②:Candidate(候选人)

③:Leader(领导者)-->"唯一"

<4>.选举: Leader需要定期发送"心跳"给Follow,宣誓领导地位,若Follow一段时间没接收到"心跳"(如Leader挂了),这众多Follow中率先等待时间先结束的,就转变Candidate候选人身份,发起投票竞选Leader领导者

<5>.任期:

是什么:

  • 任期是 Raft 里一轮选举的编号,数字只会递增不会倒退。
  • 一轮任期只允许一个 Leader;换主、重新选举时任期数字 + 1。
  • 节点发现别人任期比自己大,立刻放弃自己身份,乖乖当 Follower。

选举过程可能的三种结果:

①:赢得选举(某节点手握票数大于总票数一半)

②:其他节点赢了,自个切换成Follow身份

③:一段时间内所有节点中没有一个节点拿到半数以上的票数,则都保持Candidate身份状态,待到某个节点率先结束等待时间后发起新一轮选举

Raft算法中服务器节点之间采用RPC通信,主要RPC有两类:

①:RequestVote RPCs:请求投票,由Candidate在选举过程中发出

②:AppendEntries RPCs:追加条目,由Leader发出,用来做日志复制 和提供心跳机制

相关推荐
西索斯coding2 分钟前
Claude Code 工具调用返回空怎么办?claude-opus-5.5 的 input_schema 校验踩坑记录与修复方案
服务器·前端·javascript·ai
流烟默10 分钟前
ClickHouse Part 机制与写入优化实践指南
大数据·运维·clickhouse
剑锋所指,所向披靡!13 分钟前
Docker基础
运维·docker·容器
久曲健的测试窝20 分钟前
Testin云测探索脚本自愈落地路径
运维·人工智能·科技·aigc
奇树谦21 分钟前
本地FastDDS+远端MQTT转发(多主机数据隔离)架构设计与落地
运维·网络
小趴菜一只26 分钟前
SIEM-wazuh安装过程
运维·windows·安全·网络安全
脚踏实地,坚持不懈!34 分钟前
Linux 内存回收机制:水位线、kswapd 与 Direct Reclaim
linux·jvm·算法
SKH.36 分钟前
Linux驱动-key、中断
linux·运维·服务器
励志师code36 分钟前
数据搬运与存储对接实战:rclone / juicesync 迁移 + 目录对账 + 容器多源挂载
运维·云计算
小龙报38 分钟前
【零到全栈】从扩展名到终端实操,打通 Linux 基础
linux·ubuntu·云原生·职场和发展·创业创新·学习方法·程序员创富