實現:多活的基礎中間件

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 支持基于時間戳的沖突解決方案,當一筆數據在兩個機房同時被修改時,最 后修改的數據會被保留,老的數據會被覆蓋。
整體結構

推薦閱讀

設計:異地多活的實現思路和方法

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895325.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895325.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895325.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python3連接MongoDB并寫入數據

個人博客地址:Python3連接MongoDB并寫入數據 | 一張假鈔的真實世界 安裝PyMongo $ pip3 install pymongo Successfully installed pymongo-3.7.2 連接MongoDB并且批量插入操作 #!/usr/bin/python3import mysql.connector import gzip import json from pymongo …

Python 操作 MongoDB 教程

一、引言 在當今數字化時代,數據的存儲和管理至關重要。傳統的關系型數據庫在處理一些復雜場景時可能會顯得力不從心,而 NoSQL 數據庫應運而生。MongoDB 作為一款開源的、面向文檔的 NoSQL 數據庫,憑借其高性能、高可擴展性和靈活的數據模型…

使用 Python-pptx 庫提取 PPTX 文件中的結構與文字

是的,使用 python-pptx 庫是提取 PPTX 文件中結構和文字的理想選擇,原因如下: 專門處理 PPTX 格式 python-pptx 是一個專門為處理 PPTX 文件(.pptx 格式)而設計的 Python 庫。 它可以讀取和操作 PPTX 文件的內部結構…

DeepSeek本地化部署

DeepSeek本地化部署 本教程為一鍵式部署,適合于mac、ubuntu、windows。【開源地址】 環境要求 nodejs > 18Python > 3.10.12 步驟一:安裝ollama客戶端 官網直接安裝,ollama官網。安裝完成后使用命令:ollama -h&#xf…

驅動開發系列34 - Linux Graphics Intel 動態顯存技術的實現

一:概述 動態顯存技術(Dynamic Video Memory Technology, DVMT)是一種由 Intel 提出的內存分配技術,主要用于整合顯卡(集成顯卡)系統中,以便動態地調整顯存大小,從而在不同的負載場景下優化內存使用和系統性能。 動態顯存技術的核心在于共享系統內存。集成顯卡沒有獨立…

DeepSeek 入駐 Cursor —— 表現能否超越 Claude?

DeepSeek 剛剛在 Cursor 平臺上線了它的兩款模型:DeepSeek V3 和 R1。目前,許多開發者(包括我們在內)主要依賴 Claude 3.5 Sonnet(最新版本 claude-3-5-sonnet-20241022)作為主要語言模型,因此我…

持久性HTTPVS.非持久性HTTP

1. HTTP協議基礎 HTTP(HyperText Transfer Protocol)是Web通信的核心協議,定義了客戶端(瀏覽器)與服務器之間傳輸數據的規則。 在HTTP/1.0及之前的版本中,默認使用非持久性連接,而HTTP/1.1及更…

大數據與大模型:數字時代的共生力量

引言:大數據與大模型的嶄新時代 在數字化浪潮洶涌澎湃的當下,大數據與大模型無疑是最為耀眼的兩顆明星 ,深刻地改變著我們的生活、工作和思維方式。大數據,作為信息時代的寶藏,蘊含著無盡的價值。從電商平臺的海量交易…

中間件-redis-(ubantu)

1、安裝依賴包 sudo apt-get update sudo apt-get install redis 一旦安裝完成,Redis 服務將會自動啟動。想要檢查服務的狀態,輸入下面的命令: rootvims:/etc/redis# sudo systemctl status redis-server ● redis-server.service - Adva…

網絡安全架構師怎么考 網絡安全 架構

安全通信網絡 隨著現代技術的不斷發展,等級保護對象通常通過網絡實現資源共享和數據交互,當大量的設備連成網絡后,網絡安全成了最為關注的問題。按照“一個中心,三重防御”的縱深防御思想,邊界外部通過廣域網或城域網…

[2025年最新]2024.3版本idea無法安裝插件問題解決

背景 隨著大模型的持續發展,特別年前年后deepseek的優異表現,編程過程中,需要解決ai來輔助編程,因此需要安裝一些大模型插件 問題描述 在線安裝插件的時候會遇到以下問題: 1.數據一直在加載,加載的很滿 2.點…

自動駕駛---如何打造一款屬于自己的自動駕駛系統

在筆者的專欄《自動駕駛Planning決策規劃》中,主要講解了行車的相關知識,從Routing,到Behavior Planning,再到Motion Planning,以及最后的Control,筆者都做了相關介紹,其中主要包括算法在量產上…

centos7 升級openssl并安裝python3

參考文章:https://www.cnblogs.com/chuanzhang053/p/17653635.html 卸載已有版本 yum remove -y openssl openssl-devel下載1.1版本 wget https://www.openssl.org/source/openssl-1.1.1v.tar.gztar -zxf openssl-1.1.1v.tar.gz 查看openssl.conf文件的目錄 fin…

【python】3_容器

目錄 一、列表 list 1.1基本語法 1.2 常用操作方法 1.3 列表的遍歷 二、元組 tuple 特點: 三、字符串 常用操作方法: 四、序列 操作方法:切片 五、元素 特點: 基本語法: 集合常用功能: 六、字…

三角拓撲聚合優化器TTAO-Transformer-BiLSTM多變量回歸預測(Maltab)

三角拓撲聚合優化器TTAO-Transformer-BiLSTM多變量回歸預測(Maltab) 完整代碼私信回復三角拓撲聚合優化器TTAO-Transformer-BiLSTM多變量回歸預測(Maltab) 一、引言 1、研究背景和意義 在現代數據科學領域,時間序列…

Jenkins+gitee 搭建自動化部署

Jenkinsgitee 搭建自動化部署 環境說明: 軟件版本備注CentOS8.5.2111JDK1.8.0_211Maven3.8.8git2.27.0Jenkins2.319最好選穩定版本,不然安裝插件有點麻煩 一、安裝Jenkins程序 1、到官網下載相應的版本war或者直接使用yum安裝 Jenkins官網下載 直接…

AI 編程開發插件codeium Windsurf(vscode、editor) 安裝

1、vscode中安裝: 2、vscode中使用 3、輸入注冊的賬號密碼,就可以使用。 4、或者直接下載editor 5、安裝editor 下一步,下一步,直到安裝成功,中間可以改下安裝位置,如果C盤空間不夠。 同樣提示注冊或者登錄…

【Mac排錯】ls: command not found 終端命令失效的解決辦法

【TroubleShooting on Mac】ls: command not found 終端命令失效的解決辦法 A Solution to Solve “Command not found” of Terminal on Mac 一直在使用心愛的MacBook Pro的Terminal,并且為她定制了不同的Profile。 這樣,看起來她可以在不同季節&…

502 Bad Gateway 錯誤詳解:從表現推測原因,逐步排查直至解決

502 Bad Gateway 錯誤通常意味著服務器之間的通信失敗,但導致的具體原因往往因場景而異。 場景一:高峰期頻繁出現 502 錯誤 1.1 現象 在流量高峰期間(如促銷活動、直播發布等),頁面訪問變慢甚至出現 502 錯誤&#…

河北某石油管廊自動化監測

1. 項目簡介 近年來,國家密集出臺油氣管道建設相關政策和規劃引導中國油氣管道加快建設,2017年,在《中長期油氣管網規劃》中對2025年和2030年油氣管道發展目標均作出了相應的規劃目標。另一方面,隨著油氣管道行業的發展&#xff…