当前位置: 首页 > news >正文

OceanBase 3.X 高可用 (一)

OceanBase 3.X 高可用(一)

一、分布式核心

OceanBase 3.x 采用的是paxos 协议,与raft协议相比。其复杂程度高,实现技术难度大。

Paxos 协议允许事务日志乱序发送,顺序提交。raft允许事务顺序发送,顺序提交。相比之下,paxos协议的事务执行速度将快于raft协议。

Paxos 与 Raft 都对节点网络延迟与时钟同步有要求,Paxos对网络抖动,性能影响方面都优于raft协议。
Raft算法认为各副本都是对等的,那么在leader选举机制上会弱于Paxos(会根据系统硬件,资源配置,负载均衡进行判断)。

二、Leader 选举

1.Leader选举会由其中一台Server 充当提议者,其它Server 充当 接受者。提议者会向充当者发送提议【编号与value】,如果充当者中的大多数都接收到了消息并进行了回复,则提议者当选为Leader。

2.当选Leader的Server会将【编号与value】发送给所有的接受者,如果多数接受者返回了AcceptAck(),说明大多数接受者已认同。

3.Leader 这个提议者将向所有的接受者发送Accept【编号与value】。

感觉上有点偏向TCP的三次握手。

多个Server 当选 为Leader的问题(相近的时间内,多个Server完成了上面动作),产生脑裂问题的解决办法:

Paxos 协议因为是基于时钟同步的(时钟也是集群)。
在无主的情况下,第一个Server当选为Leader,会存在一个lease(租约时间,未过期状态下)。
当有Leader存在租约时间且小于其Server中的leader lease小(且不过期的情况下),则只会认为拥有最小lease的Server充当Leader。

突然联想到了注册中心实现分布式锁的原理(比如zookeeper)。

三、Leader 三种改选类型(需要考虑健康程度,硬件优势)

MAX_DELAY=100ms
MAX_TST=200ms

NTP 小于 100ms
Server 之间小于 200ms

1.有主连任:
在lease租期内,自我推荐,拥有优先权(其它Server默认其有优先权)。

2.无主选举:
1.所有的follow Observer 会发起devote_prepare(相当于当选意愿,包含了自己想要当选的权重)。
2.所有的follow Observer 在交换意愿后,推举最大意愿的follow Observer 为Leader,并向其发送devote_prepare消息(告诉最大意愿的follow Observer当选了)。且意愿低的follow observer会记录unconfirmed_leader_lease。
3.当多数派都选择了统一个Server,Server就要开始Leader上任了 ,并将好消息(成功当选)广播给所有的follow observer,follow observer们就默默记录Leader_lease了(相当于备案,防止自己不长眼,自己造时势力,准备谋反,可惜天意天命不在身呀)。
4.Leader 选举完成,开始清理所有的选举产生的临时状态信息(有点卸磨杀驴,抹掉痕迹,然后其他人感觉Leader是寿命于天、既受永昌)。

四、Leader 日志同步

1.app 发起dml ,leader 记录dml到memstore与clog,clog同步到其它follower中并重放至memstore。
2.app 发起commit,leader中的clog开始落盘,同时其它follower也开始落盘,当大多数follower都落盘OK ,则app将认为已执行成功。

因为Paxos的原因,日志是乱序发送,顺序提交。

五、Paxos如何保证一致性

在这里插入图片描述

严重:
多数派节点宕机:此时服务中断,需要重启宕机进行副本恢复。
集群全部宕机:此时服务中断,需要重启宕机进行副本恢复。

相关文章:

OceanBase 3.X 高可用 (一)

OceanBase 3.X 高可用(一) 一、分布式核心 OceanBase 3.x 采用的是paxos 协议,与raft协议相比。其复杂程度高,实现技术难度大。 Paxos 协议允许事务日志乱序发送,顺序提交。raft允许事务顺序发送,顺序提…...

CSR、SSR、SSG

客户端渲染(Client-Side Rendering, CSR)在SEO方面存在一些不利因素,主要原因包括: 初始加载内容的缺乏:CSR依赖于JavaScript来动态生成页面内容。当搜索引擎爬虫访问一个使用CSR技术构建的网站时,它们最初…...

linux -L16-linux 查看应用占用的资源top

linux 查看应用占用的资源top Targetsteps启动 top 命令排序进程:查看特定进程:过滤进程其他常用选项交互式帮助 Target linux 查看应用占用的资源top steps 在 Linux 系统中,top 命令是一个非常有用的工具,它提供了一个实时更…...

QT——多线程操作

一、单线程和多线程的区别 单线程指的是程序在执行时只有一个流程,也就是一次只能执行一个任务。当程序中某个任务需要花费大量时间时,单线程会导致整个程序阻塞,用户体验会变差。 多线程则是指程序在执行时可以同时执行多个任务,每个任务都是一个独立的线程。多线程可以…...

理解C语言之深入理解指针(三)

目录 1. 字符指针变量 2. 数组指针变量 2.1 数组指针变量是什么? 2.2 数组指针变量怎么初始化 3. ⼆维数组传参的本质 4. 函数指针变量 4.1 函数指针变量的创建 4.2 函数指针变量的使⽤ 4.3 两段有趣的代码 4.3.1 typedef 关键字 5. 函数指针数组 6. 转移…...

「芯片知识」MP3解码ic方案,音乐芯片在数字音频中的作用

MP3解码芯片是一种由内部晶振器组成的简单语音电路,将这种独特的MP3音乐芯片与其他零件进行接驳,便能够形成一个完整的语音集成电路。而深受顾客欢迎的MP3音乐芯片现如今已经广泛的使用在电子玩具和家用电器等众多的场合之中,它在数字音频中扮…...

MyBatis与 Springboot 的集成

MyBatis 是一个优秀的持久层框架,专注于 SQL 语句的灵活控制,与 Spring Boot 集成可以简化数据库操作,提升开发效率。Spring Boot 提供了与 MyBatis 无缝集成的支持,使得 MyBatis 可以轻松与 Spring Boot 应用结合使用。 一、MyB…...

迁移学习和外推关系

**迁移学习(Transfer Learning)和外推(Extrapolation)**都是机器学习中处理新数据的一种方式,但它们的定义、应用场景和挑战有所不同。让我们来对比两者并探讨它们的关系。 定义 迁移学习(Transfer Learni…...

小程序-生命周期与WXS脚本

生命周期 什么是生命周期 生命周期(Life Cycle)是指一个对象从创建 -> 运行 -> 销毁的整个阶段,强调的是一个时间段。 我们可以把每个小程序运行的过程,也概括为生命周期: 小程序的启动,表示生命…...

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建FC-web模拟器

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建FC-web模拟器 华为云端口放行 服务器放行对应端口9995 Docker安装并配置镜像加速 1、购买华为云 Flexus X 实例 Flexus云服务器X实例-华为云 (huaweicloud.com) 2、docker安装 yum install -y docker-ce3、验证…...

_RET_IP_ 和_THIS_IP_ 作用

在Linux内核中,有两个罕见的宏定义_RET_IP_ 和_THIS_IP_。但是这两个宏在内核代码中又时不时的出现,那么它们到底是什么含义呢? 1、宏定义 我们先看它们的宏定义 include./linux/kernel.h#define _RET_IP_ (unsigned long)__builtin_return_address(0)#define …...

Spring Boot 点餐系统:高效餐饮服务

第二章关键技术的研究 2.1相关技术 网上点餐系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言,易于学习,实用且面向用户。全球超过35%的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统,因为它的…...

RtspServer:轻量级RTSP服务器和推流器

文章目录 项目概述技术分析支持的编码格式传输方式心跳检测机制RTSP 推流安全性 架构分析RtspServer 整体架构流程分析1. 客户端连接和会话建立2. 媒体数据传输3. 心跳检测和连接维护 xop 基础库项目介绍功能特性xop 整体架构 应用场景社区问题收集与解答问题一:刚开…...

为什么结构化 Prompt 如此有效?

你好,我是三桥君 在今年,我研究了结构化编写Prompt的方法,并观察到这种结构化、模板化的Prompt能够有效地突破ChatGPT 3.5的限制,实现所谓的“越狱”。然而,为什么ChatGPT会对这种结构化Prompt如此有效呢?…...

无人机飞手培训校企合作特训技术详解

随着无人机技术的飞速发展,其在航拍、农业、测绘、救援等多个领域的应用日益广泛,市场对高素质无人机飞手的需求急剧增加。为满足这一需求,促进教育与产业深度融合,无人机飞手培训校企合作模式应运而生。本文将从确定合作目标、共…...

从零开始的软件开发详解:数字药店系统源码与医保购药APP

很多小伙伴们疑问,医保购药APP是如何开发的,今天我将从零数字药店系统源码开始为大家提供一条清晰的实现方案。 一、技术架构设计 在开发医保购药APP之前,首先需要明确技术架构。一般来说,APP的技术架构可以分为前端和后端。 1…...

【记录】在返回值类型为BigDecimal情况下末尾小数位为0的会省略不显示

【问题】:在返回值类型为BigDecimal情况下末尾小数位为0的会省略不显示 问题复现: 实体类 package com.zlp.aspect.entity;import java.math.BigDecimal;/*** program: my_utils* description:* author: zlp* create: 2024-09-24 10:01**/public clas…...

通信工程高级职称评审条件详细解读

通信工程只有正高和副高级别的职称,中级通信工程的职称是需要自己参加考试的,并不是评审获得,这个大家需要注意一下,先要考取中级通信工程师之后才能评审副高和正高级通信工程的职称。 下面跟甘建二一起来看看通信专业职称评审条件…...

yolov8环境安装

yolov8 git地址 https://github.com/ultralytics/ultralytics/tree/main 我的电脑显卡配置 nvidia-smi cuda11.8下载 https://developer.nvidia.com/cuda-11-8-0-download-archive?target_osWindows&target_archx86_64&target_version10&target_typeexe_local …...

C语言中易混淆概念的关键字

最快的关键字---- register register: 这个关键字请求编译器尽可能的将变量存在 CPU 内部寄存器中而不是通过内 存寻址访问以提高效率。注意是尽可能,不是绝对。你想想,一个 CPU 的寄存器也就那么 几个或几十个,你要是定义了很多很…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

云原生安全实战:API网关Kong的鉴权与限流详解

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...