偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

聊聊異地多活實(shí)踐與設(shè)計(jì)思考點(diǎn)歸納

開發(fā) 前端
在異地多活項(xiàng)目整體推過程中的一些注意事項(xiàng)和設(shè)計(jì)點(diǎn)歸納和整理,拋磚引玉,其中一些點(diǎn)還有待深入探討和優(yōu)化。

引言

在異地多活項(xiàng)目整體推過程中的一些注意事項(xiàng)和設(shè)計(jì)點(diǎn)歸納和整理,拋磚引玉,其中一些點(diǎn)還有待深入探討和優(yōu)化。

一、指導(dǎo)事項(xiàng)歸納

1.多活原因歸納

推動(dòng)多活的原因大體可歸納為以下三種。

  • 高可用架構(gòu)部署
  • 業(yè)務(wù)整體的容災(zāi)
  • 單機(jī)房容量限制

2.多活指導(dǎo)歸納

多活牽扯公司業(yè)務(wù)方方面面,整體來講業(yè)務(wù)改造和基礎(chǔ)設(shè)施中間件改造兩大塊。

  • 核心鏈路自包含可邏輯分片
  • 調(diào)用盡可能收斂在本單元
  • 流量分片邏輯盡可能均衡
  • 中間件多活架構(gòu)改造升級(jí)
  • 業(yè)務(wù)改造支持多活方案
  • 業(yè)務(wù)場景驗(yàn)證中間件能力

3.推動(dòng)事項(xiàng)歸納

順利推進(jìn)多活事項(xiàng)是公司重要戰(zhàn)略,需要統(tǒng)一思想,將多活項(xiàng)目當(dāng)成最高優(yōu)先級(jí)推進(jìn)。

  • 統(tǒng)一思想認(rèn)識(shí)自覺對齊到公司級(jí)戰(zhàn)略項(xiàng)目
  • 設(shè)置總架構(gòu)師級(jí)別建議對齊部門負(fù)責(zé)人,對整體架構(gòu)方案和結(jié)果負(fù)責(zé)

例如:總架構(gòu)師擁有對各個(gè)部門牽頭同學(xué)擁有不低于60%的績效考核權(quán)

  • 部門負(fù)責(zé)人作為該部門領(lǐng)導(dǎo)需要全力推動(dòng)
  • 每個(gè)業(yè)務(wù)線設(shè)置接口人并負(fù)責(zé)該業(yè)務(wù)線所有對接和推動(dòng)事務(wù),對本業(yè)務(wù)線或者部門的推動(dòng)結(jié)果負(fù)責(zé)

例如:業(yè)務(wù)線接口人擁本業(yè)務(wù)參與多活事項(xiàng)同學(xué)不低于60%的績效考核權(quán)

  • 項(xiàng)目架構(gòu)師與各業(yè)務(wù)負(fù)責(zé)人周會(huì)例會(huì)及時(shí)跟進(jìn)問題和進(jìn)度
  • 各個(gè)牽頭人梳理的問題對外溝通前,先部門內(nèi)部對齊,提升溝通效率

4.抓核心鏈路

先保證核心鏈路的多活,避免面面俱到嚴(yán)重拖累進(jìn)度,例如:

  • 優(yōu)惠券庫存類扣減先中心機(jī)房統(tǒng)一扣減
  • 管理運(yùn)營類等無實(shí)時(shí)要求的先不做多活
  • 流量切換過程中容忍分鐘級(jí)不可用,切換結(jié)束后恢復(fù)

二、多活規(guī)則與流量選擇

1.路由因子選擇與映射

路由因子選擇: 需要根據(jù)公司業(yè)務(wù)場景選擇,常見的路由因子有地域、用戶ID。

路由因子與機(jī)房映射:

地域因子:將地域編號(hào)與機(jī)房建立映射,例如:001->unit-a

用戶因子:將UID與機(jī)房建立映射,例如:123456與機(jī)房編號(hào)哈希后映射到unit-a

2.請求分配正確機(jī)房

一個(gè)請求有了多活規(guī)則后如何將請求路由到正確機(jī)房,歸納了以下幾種方式:

  • 終端服務(wù)通過多域名切換:將請求直接路由到正確機(jī)房
  • 在反向代理層轉(zhuǎn)發(fā):轉(zhuǎn)發(fā)屬于異地機(jī)房流量
  • 在網(wǎng)關(guān)層轉(zhuǎn)發(fā):轉(zhuǎn)發(fā)屬于異地機(jī)房流量

3.多活管控中心服務(wù)

  • 多活部署通過雙向同步或者雙寫方式保證數(shù)據(jù)的一致性
  • 提供SDK和服務(wù)接口供中間件或者服務(wù)服務(wù)映射規(guī)則
  • 提供流量切換的整個(gè)閉環(huán)流程

三、RPC跨機(jī)房調(diào)用能力

1.注冊中心架構(gòu)圖

  • 節(jié)點(diǎn)注冊時(shí)需要將機(jī)房信息一并注冊
  • 注冊中心提供跨機(jī)房雙向同步能力

2.RPC框架跨機(jī)房調(diào)用

  • 默認(rèn)本機(jī)房調(diào)用策略
  • 提供自定義路由功能供業(yè)務(wù)選擇是否跨機(jī)房調(diào)用
  • 需要注意新老版本以及發(fā)布時(shí)是否存在流量傾斜問題

四、消息跨機(jī)房復(fù)制

1.復(fù)制插件管理與監(jiān)控

在一些業(yè)務(wù)場景中需要消息集群提供跨機(jī)房復(fù)制能力,將其他機(jī)房的流量收斂到一個(gè)機(jī)房去消費(fèi)。

  • 通過復(fù)制器插件將消息跨機(jī)房復(fù)制
  • 通過管理平臺(tái)對復(fù)制器的監(jiān)控和管理

2.流量隔離與動(dòng)態(tài)訂閱

  • 通過不同主題進(jìn)行流量隔離規(guī)避重復(fù)復(fù)制問題
  • 動(dòng)態(tài)喚醒消費(fèi)SDK訂閱復(fù)制流量
  • 復(fù)制流量來源機(jī)房打標(biāo)

五、存儲(chǔ)雙向同步

1.Redis雙向同步

Redis雙向同步并不是做多活的公司都需要,如果能作為極短時(shí)間過期使用無需進(jìn)行同步。然而也有的作為較長時(shí)間去存儲(chǔ),如果業(yè)務(wù)改造成本巨大需要提供雙向復(fù)制能力。方案有很多種,有改源碼的,下面介紹一種RedisSyncer,java實(shí)現(xiàn),詳見下面github連接。

  • https://github.com/TraceNature/redissyncer-server

可根據(jù)實(shí)際場景進(jìn)行改造,主要功能有:

  • 斷點(diǎn)續(xù)傳
  • 數(shù)據(jù)同步
  • 數(shù)據(jù)遷移
  • 數(shù)據(jù)校驗(yàn)

實(shí)現(xiàn)原理:

  • 復(fù)制器偽裝成從節(jié)點(diǎn)復(fù)制數(shù)據(jù)
  • 同步時(shí)通過寫入輔助key的方式來識(shí)別流量來源,規(guī)避重復(fù)復(fù)制問題。

注意事項(xiàng):

  • 是否需要redis雙向復(fù)制提早規(guī)劃
  • 過濾過短時(shí)間key無效復(fù)制,比如:小于3秒的不再同步
  • 批量寫入提升性能

2.MySql雙向同步

數(shù)據(jù)庫的雙向同步在異地多活通常是必須要做的事情,下面是阿里開源otter,可基于其二次定制開發(fā)。

  • https://github.com/alibaba/otter

解決循環(huán)復(fù)制實(shí)現(xiàn)原理:

  • 通過事務(wù)表解決數(shù)據(jù)循環(huán)復(fù)制
  • 復(fù)制數(shù)據(jù)時(shí)同時(shí)寫入一條數(shù)據(jù)到事務(wù)表在同一個(gè)事物中
  • 同步數(shù)據(jù)時(shí)只同步不再事務(wù)表中的數(shù)據(jù)到異地機(jī)房

還需要提供其他周邊工具:

  • 提供數(shù)據(jù)校驗(yàn)工具
  • 提供數(shù)據(jù)訂正工具
  • 提供DDL雙向同步
  • 提供數(shù)據(jù)沖突策略

注意事項(xiàng)提點(diǎn):

  • 統(tǒng)一關(guān)系數(shù)據(jù)庫存儲(chǔ) 多種數(shù)據(jù)庫PostgreSQL、MySql等的建議統(tǒng)一為一種
  • 相關(guān)任務(wù)提早同步進(jìn)行
  • 中間件與DBA開發(fā)協(xié)同推進(jìn) 例如:可以將周邊工具交由DBA開發(fā)

另外,在存儲(chǔ)側(cè)流量切換時(shí)需要提供數(shù)據(jù)庫禁寫功能,避免實(shí)現(xiàn)切流過程數(shù)據(jù)的不一致,禁寫的實(shí)現(xiàn)可以通過sql動(dòng)態(tài)拼接一個(gè)很大的時(shí)間戳實(shí)現(xiàn)。

六、其他改造事項(xiàng)

除了中間件和業(yè)務(wù)核心服務(wù)改造外,還有一些其他的改造事項(xiàng),例如:

  • 發(fā)布系統(tǒng)支持不同機(jī)房發(fā)布
  • CMDB中的資源和應(yīng)用標(biāo)識(shí)
  • 監(jiān)控體系支持不同機(jī)房流量標(biāo)識(shí)
  • 其他存儲(chǔ)相關(guān)(ES、Hbase等)盡量不復(fù)制

七、流量切換過程

1.流量切換大體流程

從機(jī)房A流量切換機(jī)房B的大體流程圖如下:

  • @1 多活規(guī)則中心下發(fā)禁寫通知和禁寫時(shí)間基線
  • @2 數(shù)據(jù)庫SDK收到禁寫數(shù)據(jù)庫寫入和更新
  • @2 雙向復(fù)制器收到超過禁寫時(shí)間基線不再復(fù)制
  • @3 雙向復(fù)制器上報(bào)復(fù)制完成狀態(tài)
  • @4 多活規(guī)則中心下發(fā)流量切換通知
  • @5 Nginx&網(wǎng)關(guān)層收到將流量切換到機(jī)房B并上報(bào)切換完成狀態(tài)
  • @6 多活規(guī)則中心下發(fā)取消禁寫通知

2.流量切換注意問題

部分流量切換的問題 場景一:切某個(gè)地域的10%流量 場景二:切某個(gè)場景用戶的10%流量

部分流量切換時(shí)數(shù)據(jù)庫禁止設(shè)計(jì)判斷

部分流量切換時(shí)復(fù)制器完成的判斷和替代方案

3.復(fù)制器監(jiān)控與思考

針對復(fù)制器自身穩(wěn)定性和性能的監(jiān)控

復(fù)制器復(fù)制進(jìn)度的監(jiān)控思考

本文轉(zhuǎn)載自微信公眾號(hào)「瓜農(nóng)老梁」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系瓜農(nóng)老梁公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 瓜農(nóng)老梁
相關(guān)推薦

2023-11-28 07:45:48

Rust自動(dòng)化測試

2021-02-24 10:05:07

架構(gòu)運(yùn)維技術(shù)

2024-04-26 00:28:14

異地多活架構(gòu)

2023-11-27 07:57:46

2021-02-04 10:00:09

異地多中心容災(zāi)

2021-04-23 09:55:27

技術(shù)開發(fā)實(shí)踐

2024-11-01 17:00:03

2024-01-03 08:30:54

Redis分布式項(xiàng)目

2019-03-18 10:32:33

容災(zāi)雙活同城

2020-11-20 09:23:01

高可用異地淘寶

2021-08-09 11:35:40

設(shè)計(jì)實(shí)踐應(yīng)用

2024-08-12 08:04:00

2017-08-01 10:55:47

DRC應(yīng)用實(shí)踐

2024-07-15 08:02:20

2021-04-26 15:40:23

技術(shù)資訊

2023-12-06 19:04:31

多平臺(tái)消息推送

2023-09-07 08:29:23

多屏云視聽小電視

2024-10-15 11:04:18

2025-04-30 05:00:00

批量運(yùn)維系統(tǒng)

2023-03-01 08:00:58

多版本業(yè)務(wù)模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)