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

实现:多活的基础中间件

APIRouter : 路由分发服务
API Router 是一个 HTTP 反向代理和负载均衡器,部署在公有云中作为 HTTP API 流量的入口,它能识别
出流量的归属 shard ,并根据 shard 将流量转发到对应的 ezone API Router 支持多种路由键,可以
是地理位置,也可以是商户 ID ,订单 ID 等等,最终由 API Router 映射为统一的 Sharding ID
Global Zone Service :全局状态协调器
GZS 维护着整个多活的路由表,其他所有的服务都从 GZS 订阅路由信息。切换机房的操作也在 GZS
制台中完成。路由表包括:地理围栏信息, shard ezone 的归属信息,商铺 ID /订单 ID 等路由逻辑
层到 shard id 的映射关系等。 GZS 通过在 SDK 端建立 Cache ,来保证 shard 逻辑能够最快速度执行,
基本不需要和 GZS 交互,同时也有实时推送机制,确保在数据变更后能够快速通知到其他的服务。
SOA Proxy :内部网关
SOA Proxy 实现了对 SOA 调用的路由,执行和 API Router 相似的逻辑,但只用在机房之间进行通信的
场景。业务使用 SOA Proxy 需要对代码做一些修改,把路由信息加入到调用的上下文中。
Data Replication Center :数据复制
DRC 负责 Mysql 数据的实时双向复制,保证跨机房延时在 1s 以内。提供了基于时间的冲突解决方案,
确保各个机房的数据一致。 DRC 除了复制数据,还对外提供了数据变更的通知,让业务能够感知到其他
机房的数据变化,做相应的处理,例如清除 Cache 等。
除了 DRC ,我们还有 ZK 复制工具, RMQ 复制工具, Redis 复制工具,基本每个数据层次,都有对应的
复制方案。
Data Access Layer :数据访问
数据访问层支撑了 Globa Zone 的逻辑,还提供了最后一道保护,拒绝路由错误的数据写入,是多活最 底层的支撑。
Mysql 数据复制工具 DRC:
Mysql 的数据量最大,每个机房产生的数据,都通过 DRC 复制到其他 ezone ,每个 ezone 的主键取值 空间是ezoneid + 固定步长,所以产生的 id 各不相同,数据复制到一起后不会发生主键冲突。按照分区 规则,正常情况下,每个 ezone 只会写入自己的数据,但万一出现异常, 2 ezone 同时更新了同一笔 数据,就会产生冲突。DRC 支持基于时间戳的冲突解决方案,当一笔数据在两个机房同时被修改时,最 后修改的数据会被保留,老的数据会被覆盖。
整体结构

推荐阅读

设计:异地多活的实现思路和方法

相关文章:

实现:多活的基础中间件

APIRouter : 路由分发服务 API Router 是一个 HTTP 反向代理和负载均衡器,部署在公有云中作为 HTTP API 流量的入口,它能识别 出流量的归属 shard ,并根据 shard 将流量转发到对应的 ezone 。 API Router 支持多种路由键&am…...

Mybatis源码01 - 总体框架设计

Mybatis总体框架设计 文章目录 Mybatis总体框架设计一:MyBatis架构概览1:接口层1.1:使用传统的MyBatis提供的API1.2:使用Mapper接口 2:数据处理层【核心】2.1:参数映射和动态SQL语句生成2.2:SQL…...

在大型语言模型(LLM)框架内Transformer架构与混合专家(MoE)策略的概念整合

文章目录 传统的神经网络框架存在的问题一. Transformer架构综述1.1 transformer的输入1.1.1 词向量1.1.2 位置编码(Positional Encoding)1.1.3 编码器与解码器结构1.1.4 多头自注意力机制 二.Transformer分步详解2.1 传统词向量存在的问题2.2 详解编解码…...

Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成

文章目录 一、引言二、Jenkins简介三、安装部署Jenkins安装部署 四、集成Git与Maven安装必要的插件配置Git配置Maven 五、创建Job创建自由风格的项目配置源码管理配置构建触发器配置构建环境配置构建步骤配置Post-build Actions 六、触发构建示例:GitHub Webhook触发…...

Wiki文档转换为Word技术

一、技术背景与目标 Wiki系统导出的文档通常以HTML格式存在,且内容分散在多个文件中,每个页面对应一个HTML文件。然而,Microsoft Word(Word)在处理HTML文件时,仅支持单个HTML文件的导入。因此,为了将Wiki导出的内容转换为Word可识别的格式,必须将分散的HTML文件整合为一…...

1.【线性代数】——方程组的几何解释

一 方程组的几何解释 概述举例举例一1. matrix2.row picture3.column picture 概述 三种表示方法 matrixrow picturecolumn picture 举例 举例一 { 2 x − y 0 − x 2 y 3 \begin{cases} 2x - y 0 \\ -x 2y 3 \end{cases} {2x−y0−x2y3​ 1. matrix [ 2 − 1 − 1 …...

力扣1448. 统计二叉树中好节点的数目

Problem: 1448. 统计二叉树中好节点的数目 文章目录 题目描述思路复杂度Code 题目描述 思路 对二叉树进行先序遍历,边遍历边对比并更新当前路径上的最大值pathMax,若当pathMax小于等于当前节点值,则好节点的数目加一 复杂度 时间复杂度: O (…...

【C#零基础从入门到精通】(二)——C#注释和命名法详解

【C#零基础从入门到精通】(二)——C#注释和命名法详解 C# 中的注释 定义 在 C# 里,注释是一种特殊的代码文本,它不会被编译器执行,主要用于对代码进行解释、说明,帮助开发者更好地理解代码的功能、用途、实现思路以及注意事项等,提升代码的可读性和可维护性。 注释类型…...

SQLServer的创建,表创建,主键,约束,模糊查询

设置 注意: 设置完成之后 重新启动 创建数据库 注意: 这个目标路径必须要有该文件名的文件夹 -- 指向 master 数据库,告诉它我们要创建一个新的数据库操作了 use master go-- 创建数据库 create database StudentManageDB on primary (-- 以下四个组成部分缺一不可…...

DeepSeek深度思考:客户端(Android/iOS)架构设计指南

目标读者:中高级开发者、架构师 适用场景:大型复杂应用开发、跨团队协作、长期维护迭代 一、架构设计核心原则 1.模块化(Modularization) 横向拆分:按功能边界划分(如登录、支付、消息模块)纵向…...

亚远景-精通ASPICE:专业咨询助力汽车软件开发高效合规

在竞争日益激烈的汽车行业,软件开发已成为决定成败的关键因素。ASPICE(汽车软件过程改进和能力确定) 作为行业公认的软件开发框架,为汽车制造商和供应商提供了实现高效、合规开发的路线图。 然而,ASPICE 的实施并非易…...

OpenCV 相机标定流程指南

OpenCV 相机标定流程指南 前置准备标定流程结果输出与验证建议源代码 OpenCV 相机标定流程指南 https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html https://learnopencv.com/camera-calibration-using-opencv/ 前置准备 制作标定板:生成高精度棋…...

项目场景拷打

补偿事务解决超卖 通过补偿事务避免超卖问题,可以通过以下几种方式实现: 1. 使用数据库事务与锁机制 事务管理:将库存扣减和订单生成操作放在同一个数据库事务中,确保操作的原子性。如果事务中任何一个步骤失败,则整…...

Vue2生命周期面试题

在 Vue 2 中,this.$el 和 this.$data 都是 Vue 实例的属性,代表不同的内容。 1. this.$el this.$el 是 Vue 实例的根 DOM 元素,它指向 Vue 实例所控制的根节点元素。在 Vue 中,el 是在 Vue 实例创建时,指定的根元素&…...

【每日一题 | 2025】2.3 ~ 2.9

个人主页:GUIQU. 归属专栏:每日一题 文章目录 1. 【2.3】P8784 [蓝桥杯 2022 省 B] 积木画2. 【2.4】P8656 [蓝桥杯 2017 国 B] 对局匹配3. 【2.5】[ABC365D] AtCoder Janken 34. 【2.6】P8703 [蓝桥杯 2019 国 B] 最优包含5. 【2.7】P8624 [蓝桥杯 2015…...

使用OpenGL自己定义一个button,响应鼠标消息:掠过、点击、拖动

button需要有一个外观 外观 大小跟随窗口改变,采用纯色背景、纯色文字 文字 大小跟随窗口改变 button需要获得鼠标消息 掠过 鼠标掠过时 button 出现阴影,鼠标掠过后 button 阴影消失 点击 点击后进入相应事件 拖动 改变图标所在位置 需要在g…...

C# 上位机--变量

C# 上位机--变量 在 C# 上位机开发领域,变量是构建程序逻辑的基础元素之一。它就像是一个容器,用于存储各种类型的数据,从简单的数值到复杂的对象。正确理解和使用变量,对于开发出高效、稳定且易于维护的上位机程序至关重要。本文…...

网络安全检查漏洞内容回复 网络安全的漏洞

的核心目标是保障业务系统的可持续性和数据的安全性,而这两点的主要威胁来自于蠕虫的暴发、黑客的攻击、拒绝服务攻击、木马。蠕虫、黑客攻击问题都和漏洞紧密联系在一起,一旦有重大安全漏洞出现,整个互联网就会面临一次重大挑战。虽然传统木…...

【GIS】本地部署nominatim地理编码服务

参考:https://www.cnblogs.com/nonkicat/p/17222677.html docker 部署命令 4.5 版本 docker 用不了,需要用 4.0 版本 docker run -it -e PBF_PATH/data/你的osm文件.osm.pbf -e FREEZEtrue -e POSTGRES_MAX_CONNECTIONS100 -p 6666:8080 --…...

HTML之JavaScript对象声明

HTML之JavaScript对象声明 常用&#xff1a;方式1&#xff1a;new Object() 创建一个空对象方式2&#xff1a;{属性名:属性值,属性名:属性值,...函数名:function(){}} 创建一个对象<!DOCTYPE html> <html lang"en"> <head><meta charset&quo…...

LyricsX:如何在macOS上实现智能歌词同步的完整解决方案

LyricsX&#xff1a;如何在macOS上实现智能歌词同步的完整解决方案 【免费下载链接】LyricsX &#x1f3b6; Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX 作为macOS用户&#xff0c;你是否曾为音乐播放器缺乏歌词功能而烦恼&a…...

ESP32-CAM PSRAM与DinBase升级:解决内存瓶颈与供电稳定性

1. 项目概述&#xff1a;当ESP32-CAM遇上PSRAM与DinBase&#xff0c;我们能玩出什么新花样&#xff1f;最近在捣鼓物联网视觉项目时&#xff0c;发现了一个挺有意思的新玩意儿——ESP32CAM-PSRAM & DinBase。这名字听起来有点拗口&#xff0c;但拆开来看&#xff0c;其实就…...

使用 Taotoken CLI 工具一键配置多开发环境与团队密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用 Taotoken CLI 工具一键配置多开发环境与团队密钥 基础教程类&#xff0c;面向需要为团队或跨项目统一配置大模型接入环境的开…...

斗鱼股权曝光:腾讯持股40% 陈少杰持股18%

雷递网 乐天 5月13日斗鱼日前向美国SEC发布20-F文件&#xff0c;文件显示&#xff0c;截至2026年3月31日&#xff0c;腾讯一共持有 12,070,080股&#xff0c;占总股本的40%&#xff1b;斗鱼创始人、联席CEO陈少杰持股为18%。截至2026年3月31日&#xff0c;斗鱼股权结构Morgan S…...

Dev-GPT部署指南:简单三步将你的微服务推向Jina云平台

Dev-GPT部署指南&#xff1a;简单三步将你的微服务推向Jina云平台 【免费下载链接】dev-gpt Your Virtual Development Team 项目地址: https://gitcode.com/gh_mirrors/de/dev-gpt Dev-GPT是一款强大的虚拟开发团队工具&#xff0c;能够帮助开发者快速构建和部署微服务…...

【CentOS 7.6】打造现代化C/C++开发环境:Neovim配置、插件生态与智能补全实战

1. 环境准备与工具链搭建 在CentOS 7.6上构建现代化C/C开发环境&#xff0c;首先需要确保基础工具链的完整性。不同于桌面环境&#xff0c;服务器环境往往需要从源码编译安装最新版本的开发工具&#xff0c;这对系统兼容性和依赖管理提出了更高要求。 1.1 GCC编译器升级实战 Ce…...

别再死记硬背了!用“餐厅经营”的比喻,5分钟搞懂批处理、分时和实时操作系统的区别

用餐厅经营智慧解锁操作系统核心概念 想象一下走进一家餐厅&#xff0c;菜单上的选择琳琅满目&#xff0c;服务员穿梭忙碌&#xff0c;厨房里热火朝天——这个看似普通的就餐场景&#xff0c;其实暗藏着计算机操作系统的精妙设计。就像餐厅需要高效协调顾客、服务员和厨师的关系…...

实测Taotoken API调用延迟与稳定性在SpringBoot服务中的表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 实测Taotoken API调用延迟与稳定性在SpringBoot服务中的表现 在将大模型能力集成到后端微服务时&#xff0c;开发者不仅关注功能的…...

【信息科学与工程学】【通信工程】第六篇02 5G-A6G 智能超表面

一、智能超表面 1.1 智能超表面基础 智能超表面(RIS)是一项前沿技术,它让我们能够像“指挥”光一样,去灵活地操控看不见的电磁波,从而构建一个智能、高效的无线环境。 理解维度 核心内容 关键点 它是什么?(核心特征)​ 一种可编程的二维人工电磁表面 由大量超材…...

量子控制脉冲设计:SCQC框架与BARQ方法详解

1. 量子控制脉冲设计基础与SCQC框架 量子计算的核心挑战之一是实现高保真度的量子门操作。在实际系统中&#xff0c;量子比特不可避免地会受到各种噪声干扰&#xff0c;导致门操作误差累积。传统量子控制方法通常将噪声抑制作为优化目标之一&#xff0c;与门保真度目标形成竞争…...