【測試人生】數據同步和遷移的變更注意事項

數據同步或者遷移操作也算是線上數據變更的一種類型。由于涉及的數據量非常大,一旦發生故障,會直接影響線上業務,并且較難止損。從變更風險管控的角度考慮,數據同步或遷移操作也需要走合理的發布窗口,并且在操作前也需要做足夠的影響分析。本文就來聊一下數據同步和遷移的變更期間注意事項。

數據同步按照持續狀態的不同可以分為一次性同步跟持續性同步。從質量保障的角度,要降低持續性同步的風險,需要額外考慮數據跟組件性能的監控,其它方面的考慮兩者沒有太大的差別。數據同步的操作手法也有很多種,既可以通過搭建中間件,實現一個導入binlog到MQ然后再導到其它存儲的通路,也可以通過自建業務服務,通過批量刷數的方式主動導入大量數據。對于后者,在以前的文章當中已經提到了一些通用的風險點,但如果考慮到數據同步的需要,還會有一些額外的考量。

第一塊是壓力,數據同步的壓力相比于一般修數是更加大的,源存儲有讀的壓力,而目標存儲有寫的壓力,并且由于一般讀操作可能會分散到多個存儲節點,寫壓力對于單點存儲的影響會更大,因此需要重點考慮目標節點當前的QPS情況,選擇一個相對合適的數字。

第二塊的考量點是同步數據的篩選和轉化。通常如果涉及到異構數據存儲,同步鏈路上需要執行數據轉化的服務節點,這些節點也會承受一定的壓力。如果服務節點的QPS過高,可能會影響服務節點連帶的一些服務,或者也有可能導致服務節點注冊的網關觸發限流,這樣就有業務不可用的風險。同時,數據轉化本身的代碼邏輯也需要保證健壯性,如果觸發了corner-case導致服務報錯,也有可能影響甚至阻塞數據同步。

第三塊的考量點是數據校驗。尤其針對批量調用服務接口導入數據的情況,需要通過一定的機制去驗證數據的正確性,保證同步的數據生效并對符合業務需求表現。校驗方面,需要補上小時級、日級的數據對賬;發布過程本身,也需要保證有階段性的灰度過程,并盡可能隨機遴選數據,確保全量發布前數據驗證無誤。

最后再回到壓力。這塊討論的是數據同步已經在線上穩定運行時,其它變更需要考慮到線上已有的數據同步鏈路。好比說DB數據的增量持續性同步,如果線上有大批量的修改數據,那么就會有可能導致潛在的數據同步鏈路因為突然的壓力發生阻塞,影響某些業務可用性。要解決這個問題,需要梳理變更操作涉及的DB,以及DB涉及的數據同步鏈路,通過小流量灰度的方式初步檢測壓力狀況如何,再逐步地修改并發參數,找到最合適的變更方式。

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

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

相關文章

淺談Google Play ASO 優化

什么是ASO ASO即APP Store Optimization,是用于提高APP在應用市場排名的工具,其實也就是移動產品的SEO工作。 ASO是為了提高該產品的搜索結果成績,提升APP的下載量,針對Google Play來說,ASO就是優化APP頁面。 為什么…

Linux升級nginx版本

處于漏洞修復目的服務器所用nginx是1.16.0版本掃出來存在安全隱患,需要我們升級到1.17.7以上。 一般nginx默認在 /usr/local/ 目錄,這里我的nginx是自定義的路徑安裝在 /app/weblogic/nginx 。 1.查看生產環境nginx版本 cd /app/weblogic/nginx/sbin/…

Redis基礎入門

第1章:引言 大家好!我是小黑,今天咱們來聊聊Redis。Redis,這個名字你可能在不少地方聽過,尤其是在后端開發領域,它可是個大名鼎鼎的角色。,Redis是一個開源的內存中數據結構存儲系統&#xff0…

放棄原生SQL:Python中更優雅的數據庫操作

概要 在Python中,通過原生SQL語句進行數據庫操作是一種傳統的方式,但現代的Python開發中,使用ORM(Object-Relational Mapping)工具和數據庫連接庫可以更加高效和優雅地進行增刪改查操作。本文將詳細介紹Python中放棄原…

解決IDEA中多個項目不在同一窗口下顯示的問題和添加新的git的URL

以上是添加顯示多個項目 以下是給新添加的項目添加git

LeetCode算法題解(單調棧)|LeetCode84. 柱狀圖中最大的矩形

一、LeetCode84. 柱狀圖中最大的矩形 題目鏈接:84. 柱狀圖中最大的矩形 題目描述: 給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大…

做外貿很多時候還是要學會隨機應變

馬上又要到年底了,相信已經有一部分小伙伴開啟了催單模式,希望客戶盡量在春節前將訂單落實下來,自然也有很多客戶會在春節前的這一段時間開始陸續拜訪自己觀望了很久的工廠。 其實對于貿易公司來說,對于來看工廠的客戶&#xff0…

ChatGPT,作為一種強大的自然語言處理模型,具備顯著優勢,能夠幫助您在各個領域取得突破

2023年隨著OpenAI開發者大會的召開,最重磅更新當屬GPTs,多模態API,未來自定義專屬的GPT。微軟創始人比爾蓋茨稱ChatGPT的出現有著重大歷史意義,不亞于互聯網和個人電腦的問世。360創始人周鴻祎認為未來各行各業如果不能搭上這班車…

Kotlin 作用域函數:理解 apply, let, 和 with

Kotlin提供了幾個作用域函數來優化和簡化代碼的結構。 本文將對比分析 apply, let, 和 with 三個函數。 一、對比分析: apply:在其接收者的上下文中執行代碼塊,并返回接收者對象。let:在其接收者的上下文中執行代碼塊&#xff…

Kotlin:內置函數let、also、with、run、apply

前言 在Kotlin中,有一些用于擴展 & 方便開發者編碼的內置函數,能大大提高開發者的開發效率。今天,我將主要講解的是: let函數also函數with函數run函數apply函數 基礎知識:接口回調中Lambda使用 在Kotlin中可使用…

棧和隊列的互相實現

用隊列實現棧 OJ鏈接 請你僅使用兩個隊列實現一個后入先出(LIFO)的棧,并支持普通棧的全部四種操作(push、top、pop 和 empty)。 實現 MyStack 類: void push(int x) 將元素 x 壓入棧頂。int pop() 移除并返…

Mybatis XML增刪操作(結合上文)

先來"增"操作 在UserInfoXMLMapper.xml里面寫 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <…

nginx多端口部署

1.配置nginx.conf文件 有幾個端口需要部署就寫幾個server&#xff0c;我這里只部署了兩個端口分別為80和81端口&#xff0c;所以有兩個server文件。80端口項目入口在根目錄的test文件中&#xff0c;81端口項目入口在根目錄的test1文件夾中。 2.準備項目文件html文件 在/test1…

Dockerfile部署Java項目掛載使用外部配置文件

Dockerfile部署Java項目掛載使用外部配置文件 技術博客 http://idea.coderyj.com/ 需求是由于java項目使用的是nacos 而且每次部署nacos服務器ip不一樣導致要重新打包,想引入外部配置文件進行打包 1.需求是由于java項目使用的是nacos 而且每次部署nacos服務器ip不一樣導致要重新…

數據結構和算法專題---5、調度算法與應用

本章我們會對調度算法做個簡單介紹&#xff0c;包括常用的調度算法&#xff08;FCFS、SJF、RR、HPF&#xff09;的概述、實現方式、典型場景做個說明。 什么是調度算法 調度算法常見于操作系統中&#xff0c;因為系統資源有限&#xff0c;當有多個進程&#xff08;或多個進程…

Oracle 怎樣修改DB_NAME

DBNEWID 是一個數據庫實用程序&#xff0c;用于更改 Oracle 數據庫的 DBNAME 和 DBID。可以更改 DBID 或 DBNAME 或兩者。 DBNAME 是在創建數據庫時指定的數據庫名稱&#xff0c;DBID 是創建數據庫時分配給數據庫的唯一編號。 以下步驟演示如何使用 DBNEWID 實用程序更改 Oracl…

【論文閱讀筆記】序列數據的數據增強方法綜述

【論文閱讀筆記】序列數據的數據增強方法綜述 摘要 這篇論文探討了在深度學習模型中由于對精度的要求不斷提高導致模型框架結構變得更加復雜和深層的趨勢。隨著模型參數量的增加&#xff0c;訓練模型需要更多的數據&#xff0c;但人工標注數據的成本高昂&#xff0c;且由于客觀…

將RK3399的挖掘機開發板在Android10下設置系統默認為24小時制

將RK3399的挖掘機開發板在Android10下設置系統默認為24小時制 2023/12/9 22:07 應該也可以適用于RK3399的Android12系統 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml -2…

MagicAnimate

簡介 新加坡國立大學 Show 實驗室和字節聯合做了一項類似的研究。他們提出了一個基于擴散的框架 MagicAnimate&#xff0c;旨在增強時間一致性、忠實地保留參考圖像并提升動畫保真度。并且&#xff0c;MagicAnimate 項目是開源的&#xff0c;目前推理代碼和 gradio 在線 demo …

python程序大全(9)——鼠標亂動惡搞小病毒(有資源)

目錄 &#x1f3c6;一、前言 &#x1f3c6;二、程序第一版 &#x1f3c6;三、程序大魔改 &#x1f6a9;1、基礎改動 &#x1f6a9;2、打包 &#x1f6a9;3、F12保護機制 &#x1f6a9;4、添加開機自啟項 &#x1f6a9;5、自己也不懂的線程魔改 &#x1f3c6;四、最終代碼 &…