精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

踩過無數坑,觸過N次雷:程序世界中必須處處設防!

新聞
人與人之間最重要的是信任,但程序的世界里,可能信任越少越好;我越發覺得越是高性能高可用的系統里,不信任原則會體現得更加淋漓盡致。

人與人之間最重要的是信任,但程序的世界里,可能信任越少越好;我越發覺得越是高性能高可用的系統里,不信任原則會體現得更加淋漓盡致。

為了少走彎路,寫下這篇文章留給自己參考,其中一些是自己踩過的一些坑;一些是接手他人系統時觸過的雷;還有一些是從別人分享的經驗學習得來;能力有限,先記下自己的一些體會,錯誤的地方再慢慢改正。

編程的世界里十面埋伏

編程,是一件容易的事,也是一件不容易的事。說它容易,是因為掌握一些基本的數據類型和條件語句,就可以實現復雜的邏輯;說它不容易,是因為高性能高可用的代碼,需要了解的知識有很多很多。

編程的世界,也跟掃雷游戲的世界一樣,充滿雷區,十面埋伏,一不小心,隨時都可能踩雷,隨時都可能 Game Over。

而玩過掃雷的人都知道,避免踩雷的最好方法,就是提前識別雷區并做標記(設防)避免踩踏。

鑒于此,編程的世界里,從輸入到輸出同樣需要處處設防,步步為營。

01對輸入的不信任

對空指針的檢查

不只是輸入,只要是使用到指針的地方,都應該先判斷指針是否為 NULL,而內存釋放后,應當將指針設置為 NULL。

【真實案例】:注冊系統某段邏輯,正常使用情況下,都有對指針做檢查,在某個錯誤分支,打印日志時,沒檢查就使用了該字符串;結果可正常運行,但當訪問某個依賴模塊超時走到該分支,觸發 Bug,導致 coredump。

對數據長度的檢查

使用字符串或某段 buf,特別是 memcpy / strcpy 時,需要盡量對數據長度做下檢查和截斷。

【真實案例】:接手 oauth 系統后運行數月表現良好,突然有一天,發生了 coredump,經查,是某個業務不按規定,請求包中填寫了超長長度,導致 memcpy 時發生段錯誤,根本原因還是沒有做好長度檢查。

對數據內容的檢查

某些場景下,沒有對數據內容做檢查就直接使用,可能導致意想不到的結果。

【真實案例】:SQL 注入和 XSS 攻擊都是利用了服務端沒有對數據內容做檢查的漏洞。

02對輸出(變更)的不信任

變更的影響一般體現在輸出,有時候輸出的結果并不能簡單的判斷是否正常,如輸出是加密信息,或者輸出的內容過于復雜。

所以,對于每次變更:

修改代碼時,采用不信任編碼,正確的不一定是“對”的,再小的修改也應確認其對后續邏輯的影響,有些修正可能改變原來錯誤時的輸出,而輸出的改變,就會影響到依賴該改變字段的業務。

發布前,應該對涉及到的場景進行測試和驗證,測試可以有效的發現潛在的問題,這是眾所周知的。

發布過程,應該采用灰度發布策略,因為測試并非總是能發現問題,灰度發布,可以減少事故影響的范圍。常見灰度發布的策略有機器灰度、IP灰度、用戶灰度、按比例灰度等,各有優缺點,需要根據具體場景選擇,甚至可以同時采用多種的組合。

發布后,全面監控是有效發現問題的一種方法。因為測試環境和正式環境可能存在不一致的地方,也可能測試不夠完整,導致上線后有問題。

所以需采取措施進行補救:

  • 如使用 Monitor 監控請求量、成功量、失敗量、關鍵節點等。
  • 使用 DLP 告警監控成功率。
  • 發布完,在正式環境測試一遍。

【真實案例】:oauth 系統某次修改后編譯時,發現有個修改不相關的局部變量未初始化的告警,出于習慣對變量進行了初始化(初始化值和編譯器默認賦值不一樣),而包頭某個字段采用了該未初始化的變量,但在測試用例中未能體現,監控也沒細化到每個字段的值,導致測試正常,監控正常;但前端業務齊齊互動使用了該包頭字段,導致發布后影響該業務。

服務程序的世界里防不勝防

一般的系統,都會有上下游的存在,如下圖所示:

而上下游的整個鏈路中,每個點都是不能保證絕對可靠的,任何一個點都可能隨時發生故障,讓你措手不及。因此,不能信任整個鏈路中的任何一個點,需進行設防。

01對服務本身的不信任

主要措施如下:

  • 服務監控。前面所述的請求量、成功量、失敗量、關鍵節點、成功率的監控,都是對服務環節的單點監控。在此基礎上,可以加上自動化測試,自動化測試可以模擬應用場景,實現對流程的監控。
  • 進程秒起。人可能在程序世界里是不可靠的因素(大牛除外),前面的措施,多是依賴人來保證的;所以,coredump 還是有可能發生的,這時,進程秒起的實現,就可以有效減少 coredump 的影響,繼續對外提供服務。

02對依賴系統的不信任

可采用柔性可用策略,根據模塊的不可或缺性,區分關鍵路徑和非關鍵路徑,并采取不同的策略:

對于非關鍵路徑,采用柔性放過策略。當訪問非關鍵路徑超時時,簡單的可采取有限制(一定數量、一定比重)的重試,結果超時則跳過該邏輯,進行下一步;復雜一點的統計一下超時的比例,當比例過高時,則跳過該邏輯,進行下一步。

對于關鍵路徑,提供弱化服務的柔性策略。關鍵路徑是不可或缺的服務,不能跳過;某些場景,可以根據目的,在關鍵路徑嚴重不可用時,提供弱化版的服務。

舉例如派票系統訪問票據存儲信息嚴重不可用時,可提供不依賴于存儲的純算法票據,為彌補安全性的缺失,可采取縮短票據有效期等措施。

03對請求的不信任

對請求來源的不信任,有利可圖的地方,就會有黑產時刻盯著,偽造各種請求,對此,可采取如下措施:

  • 權限控制。如 IP 鑒權、模塊鑒權、白名單、用戶登錄態校驗等。
  • 安全審計。權限控制僅能打擊一下非正常流程的請求,但壞人經常能夠成功模擬用戶正常使用的場景;所以,對于一些重要場景,需要加入安全策略,打擊如 IP、號碼等信息聚集,頻率過快等機器行為,請求重放、劫持等。

對請求量的不信任,前端的請求,不總是平穩的;有活動時,會暴漲;前端業務故障恢復后,也可能暴漲;前端遭到惡意攻擊時,也可能暴漲;一旦請求量超過系統負載,將會發生雪崩,最終導致整個服務不可用。

對此種種突發情況,后端服務需要有應對措施:

  • 頻率限制,控制各個業務的最大請求量(業務根據正常請求峰值的2-3倍申請,該值可修改),避免因一個業務暴漲影響所有業務的情況發生。
  • 過載保護,雖然有頻率限制,但業務過多時,依然有可能某個時間點,所有的請求超過了系統負載,或者到某個 IDC,某臺機器的請求超過負載。

為避免這種情況下發生雪崩,將超過一定時間的請求丟棄,僅處理部分有效的請求,使得系統對外表現為部分可用,而非完全不可用。

運營的世界里不可預測

01對機器的不信任

機器故障時有發生,如果服務存在單點問題,故障時,則服務將完全不可用,而依賴人工的恢復是不可預期的。對此,可通過以下措施解決:

容災部署。即至少有兩臺以上的機器可以隨時對外提供服務。

心跳探測。用于監控機器是否可用,當機器不可用時,若涉及到主備機器的,應做好主備機器的自動切換;若不涉及到主備的,禁用故障機器對外提供服務即可。

02對機房的不信任

現實生活中,整個機房不可用也是有發生過的,如 2015 年的天津濱海新區爆炸事故,導致騰訊在天津的多個機房不能對外提供正常服務,對此采取的措施有:

  • 異地部署。不同 IDC、不同城市、不同國家等部署,可以避免整個機房不可用時,有其他機房的機器可以對外提供服務。
  • 容量冗余。對于類似 QQ 登陸這種入口型的系統,必須保持兩倍以上的冗余;如此,可以保證當有一個機房故障時,所有請求遷移到其他機房,不會引發系統過載。

03對電力的不信任

雖然我們越來越離不開電力,但電力卻不能保證一直為我們提供服務。斷電時,其影響和機器故障、機房故障類似,機器會關機,數據會丟失。所以,需要對數據進行備份:

  • 磁盤備份。來電后,機器重啟,可以從磁盤中恢復數據,但可能會有部分數據丟失。
  • 遠程備份。機器磁盤壞了,磁盤的數據會丟失。對于重要系統,相關數據應當考慮采用遠程備份。

04對網絡的不信任

不同地方,網絡時延不一樣,一般來說,本地就近的機器,時延要好于異地的機器,所以,比較簡單的做法就是近尋址,如 CMLB。

也有部分情況,是異地服務的時延要好于本地服務的時延,所以,如果要做到較好的最優路徑尋址,就需要先做網絡探測,如 Q 調。

常有網絡有波動或不可用情況出現,和機器故障一樣處理,應當做到自動禁用;但網絡故障和機器故障又不一樣,經常存在某臺機器不可用。

但別的機器可以訪問的情況,這時就不能在服務端禁用機器了,而應當采用本地回包統計策略,自動禁用服務差的機器;同時需配合定時探測禁用機器策略,自動恢復可正常提供服務的機器。

05對人的不信任

人的因素在運營的世界里也是不穩定的因素(大牛除外)。所以,不能對人的操作有過多的信任:

操作備份。每一步操作都有記錄,便于發生問題時的回溯,重要的操作需要 review,避免個人考慮不周導致事故。

效果確認。實際環境往往和測試環境會存在一些差異,所有在正式環境做變更后,應通過視圖 review 和驗證來確認是否符合預期。

變更可回滾。操作前需對舊程序、舊配置等做好備份,以便發生故障時,及時恢復服務。

自動化部署。機器的部署,可能有一堆復雜的流程,如各種權限申請,各種客戶端安裝等,僅靠文檔流程操作加上測試驗證是不夠的。

可能某次部署漏了某個步驟而測試又沒測到,上線后就可能發生事故,若能所有流程實現自動化,則可有效避免這類問題。

一致性檢查。現網的發布可能因某個節點沒同步導致漏發,也就是不同的機器服務不一樣;對此,有版本號的,可通過版本號監控發現;沒版本號的,則需借助進程、配置等的一致性檢查來發現問題。

備注:以上提到的不信任策略,有的不能簡單的單條使用,需要結合其他的措施一起使用。

小結

最重要的還是那句話,程序的世界里,應該堅持不信任原則,處處設防。

責任編輯:武曉燕 來源: tencent
相關推薦

2024-04-01 08:05:27

Go開發Java

2017-07-17 15:46:20

Oracle并行機制

2018-09-11 09:14:52

面試公司缺點

2018-01-10 13:40:03

數據庫MySQL表設計

2024-05-06 00:00:00

緩存高并發數據

2015-03-24 16:29:55

默認線程池java

2023-03-13 13:36:00

Go擴容切片

2019-10-30 14:44:41

Prometheus開源監控系統

2025-04-29 10:17:42

2018-08-01 14:45:16

PHP編程語言

2022-04-26 21:49:55

Spring事務數據庫

2018-01-10 06:17:24

2024-10-08 08:14:08

用戶生命周期分析服務

2020-05-18 08:58:33

Python開發工具

2025-04-03 12:30:00

C 語言隱式類型轉換代碼

2025-10-16 08:10:59

2025-04-15 02:00:00

API版本項目

2025-04-14 09:31:03

2019-02-19 09:46:58

美圖容器化Kubernetes

2025-07-08 09:09:32

MySQL類型
點贊
收藏

51CTO技術棧公眾號

中国日韩欧美久久久久久久久| 欧美午夜精品在线| av色综合网| 日本特黄一级片| 国产videos久久| 欧美巨大另类极品videosbest | 老司机在线永久免费观看| 国产精品911| 国产精品9999| 精品视频在线观看免费| 不卡视频在线| 亚洲国产日韩欧美综合久久 | 国产网址在线观看| 日韩免费久久| 日韩激情视频在线播放| 亚洲免费黄色录像| 自拍视频在线看| 一区二区三区丝袜| 日韩精品国内| 日韩一级免费毛片| 国产麻豆精品95视频| 国产精品igao视频| 国产精品suv一区二区| 99久久精品网站| 亚洲欧美日韩精品| 国产精品久久久久久在线观看| 国内自拍亚洲| 一本色道久久综合亚洲91| 蜜桃视频一区二区在线观看| 国产爆初菊在线观看免费视频网站| 国产传媒日韩欧美成人| 国产日韩欧美自拍| 国产免费www| 国产欧美综合一区二区三区| 欧美另类在线观看| 欧美熟妇激情一区二区三区| 日韩三级视频| 精品亚洲精品福利线在观看| 无码成人精品区在线观看| 精品国产一级| 91麻豆精品国产自产在线| 北条麻妃69av| 成人观看网址| 亚洲h在线观看| 黄色a级片免费看| 中文在线观看免费| 一区二区三区日韩精品| 天天爱天天做天天操| 色开心亚洲综合| 国产精品美日韩| 艳色歌舞团一区二区三区| lutube成人福利在线观看| 国产午夜一区二区三区| 日本视频一区二区在线观看| 涩爱av在线播放一区二区| 91农村精品一区二区在线| 久久99精品久久久久久久青青日本| 亚洲爱情岛论坛永久| 国产a视频精品免费观看| 91精品国产一区二区三区动漫| 国产毛片毛片毛片毛片毛片| 国产精品一二三区在线| 不卡日韩av| 国产综合视频在线| 91看片淫黄大片一级| 美女一区视频| 国产黄在线看| 中文字幕日韩精品一区| 好吊色视频988gao在线观看| 日韩专区av| 精品久久久久久久中文字幕| 成人一级片网站| 日本h片久久| 在线播放91灌醉迷j高跟美女| 三级网站免费看| 加勒比色老久久爱综合网| 亚洲精品中文字幕女同| 四季av中文字幕| 欧美国产三区| 国内成人精品视频| 免费观看日批视频| 精品影视av免费| 国产偷国产偷亚洲高清97cao| 亚洲av成人无码久久精品老人 | 亚洲精品一区中文字幕乱码| 精品亚洲aⅴ无码一区二区三区| 欧美激情欧美| 国内精久久久久久久久久人| 久久久久久亚洲av无码专区| 精油按摩中文字幕久久| 国内精品久久国产| 99视频在线观看地址| 一级中文字幕一区二区| av片中文字幕| 久久九九精品视频| 亚洲摸下面视频| 国产大片免费看| 国产女优一区| 亚洲综合视频1区| 四虎影视在线观看2413| 中文字幕一区二| 无码中文字幕色专区| 精品自拍视频| 日韩精品欧美国产精品忘忧草| 国精品人伦一区二区三区蜜桃| 精品成人在线| 国产专区精品视频| 国产网站在线播放| 亚洲永久免费视频| 午夜免费福利视频在线观看| 男人的天堂久久| 久久亚洲精品中文字幕冲田杏梨| 亚洲男人第一av| 国产精品一色哟哟哟| 日韩在线电影一区| 欧美裸体视频| 精品少妇一区二区三区日产乱码| 国产精品无码无卡无需播放器| 国产一区二区三区自拍| 国产一区二区在线免费视频| 欧美捆绑视频| 亚洲成人7777| aaaaa黄色片| 91高清一区| 国产精品视频yy9099| 国产精品国产高清国产| 一个色综合av| 日韩欧美中文在线视频| 日韩在线第七页| 国产精品久久久久久久久| 青青草视频在线免费观看| 亚洲福利视频一区| 欧美图片自拍偷拍| 亚洲综合专区| 91综合免费在线| 好操啊在线观看免费视频| 欧美日韩国产免费| 精品熟妇无码av免费久久| 丝袜美腿亚洲色图| 女女同性女同一区二区三区91| 捆绑调教日本一区二区三区| 亚洲福利视频网站| 日本三级理论片| 成人av资源站| 国内性生活视频| 成人福利在线观看| 黄色网在线免费看| 欧美一级xxx| 五月婷婷一区二区| 国产999精品久久| 日韩欧美猛交xxxxx无码| 午夜电影一区| 久久久爽爽爽美女图片| 天天爱天天干天天操| 黄色一区二区在线观看| 人人妻人人澡人人爽人人精品| 亚洲永久免费| 性欧美videosex高清少妇| 黄色成人在线观看网站| 久久精品国产免费观看| 国产黄a三级三级看三级| 亚洲综合在线五月| 三级黄色片网站| 日韩二区三区在线观看| 亚洲.欧美.日本.国产综合在线| 视频91a欧美| 久久成人精品视频| 欧美熟妇乱码在线一区| 欧美日韩国产区| 国产jjizz一区二区三区视频| 青青草国产成人av片免费| 正义之心1992免费观看全集完整版| 色婷婷成人网| 欧美精品videossex性护士| 手机看片福利永久| 在线观看av不卡| 人妻人人澡人人添人人爽| 成人福利视频网站| 一本久道中文无码字幕av| 精品国产aⅴ| 亚洲在线免费观看| 黄色在线网站噜噜噜| 正在播放亚洲1区| 韩国av电影在线观看| 日本丰满少妇一区二区三区| 亚洲人与黑人屁股眼交| av网站一区二区三区| 国产超碰在线播放| 欧美精选在线| 日韩久久不卡| 超碰精品在线| 国产精品视频xxxx| 1024在线看片你懂得| 中文字幕成人在线| 免费国产羞羞网站视频| 精品视频在线视频| 日韩av无码中文字幕| 国产精品国产精品国产专区不蜜 | 欧美激情va永久在线播放| 欧美色视频免费| 欧美一区日本一区韩国一区| 成人毛片在线播放| 一区二区三区成人| 精品人妻中文无码av在线| 国内精品自线一区二区三区视频| 精品国产免费av| 欧美日韩国产高清| 亚洲精品高清视频| 香蕉精品久久| 成人国产1314www色视频| 成人国产一区| 欧美在线视频观看免费网站| 丝袜美女在线观看| 日韩中文字幕视频在线| 女人天堂在线| 亚洲第一网站免费视频| 91亚洲精品国偷拍自产在线观看 | 曰本一区二区三区视频| 97超碰最新| 色狠狠一区二区三区| 日韩免费在线视频| 97在线超碰| 欧美日韩国产va另类| 欧美午夜电影一区二区三区| 亚洲精品资源在线| 五月婷婷伊人网| 欧美不卡一二三| 99久久国产热无码精品免费| 欧美四级电影在线观看| 日日骚av一区二区| 天天综合天天综合色| 国产亚洲精品女人久久久久久| 自拍偷自拍亚洲精品播放| 69xxx免费| 国产精品理伦片| 国产主播av在线| 中文无字幕一区二区三区| 国产精品高清无码在线观看| www一区二区| 人妻少妇精品视频一区二区三区| 成人av先锋影音| 亚洲啪av永久无码精品放毛片| 国产高清久久久| 好吊操视频这里只有精品| 国产电影一区在线| 潘金莲一级淫片aaaaa| 国产精品白丝jk黑袜喷水| 国产美女视频免费看| 国产一区二区三区四区五区入口| 一区二区在线免费看| 精品一区二区在线观看| 青青草原播放器| 国产成人精品一区二区三区网站观看| 亚洲精品永久视频| 国产中文字幕一区| 国产乱国产乱老熟300部视频| 成人精品电影在线观看| 国产精品伦子伦| 久久新电视剧免费观看| 国产成人免费观看网站| 1000部国产精品成人观看| 91插插插插插插| 亚洲夂夂婷婷色拍ww47| 中国一级特黄毛片| 在线免费观看日韩欧美| 伊人成人在线观看| 日韩一区二区免费视频| 秋霞视频一区二区| 亚洲欧美国产日韩中文字幕| аⅴ资源新版在线天堂| 久久精品成人欧美大片古装| 欧洲在线视频| 日本最新高清不卡中文字幕| 国产精品久久久久久吹潮| 91嫩草在线视频| 欧美三级电影在线| 手机成人在线| 伊人影院久久| 亚洲精品乱码久久久久久自慰| 久久99最新地址| 中文字幕天堂av| 日本一区二区三区在线观看| 福利所第一导航| 色婷婷综合久久久中文一区二区| 97精品人妻一区二区三区| 欧美精品一区二区久久婷婷| 可以在线观看的黄色| 久久不射热爱视频精品| 亚洲电影观看| 91深夜福利视频| 香蕉久久精品日日躁夜夜躁| a级黄色片网站| 国产精品久久久亚洲一区| 日本免费色视频| 成人av网站在线观看免费| 手机av在线不卡| 大桥未久av一区二区三区| 国产美女明星三级做爰| 亚洲欧美日韩视频一区| 亚洲www色| 国产精品自在线| 丝袜连裤袜欧美激情日韩| 一区二区三区四区免费观看| 性久久久久久| 国产精品99精品无码视亚| 中日韩免费视频中文字幕| 日韩欧美一区二区一幕| 欧美裸体一区二区三区| 精品av中文字幕在线毛片 | 亚洲欧美国产精品久久久久久久| 高h视频在线观看| 国产精品中文在线| 免费av一区| av在线播放亚洲| 国产成人免费视| 99鲁鲁精品一区二区三区| 91久久精品一区二区三| 欧日韩在线视频| 欧美成人黑人xx视频免费观看| jizz亚洲女人高潮大叫| 久久精品日韩| 亚洲激情av| 久久久久亚洲av成人网人人软件| 18涩涩午夜精品.www| 中文字幕在线播放日韩| 亚洲午夜性刺激影院| 偷拍自拍在线看| 国产精品嫩草在线观看| 欧美成熟视频| 99热这里只有精品2| 17c精品麻豆一区二区免费| 亚洲天堂网视频| 一区二区三区回区在观看免费视频| 中老年在线免费视频| 精品久久久久久综合日本| 黄色成人在线网站| 欧美午夜精品一区二区| 一区二区欧美视频| 草草视频在线播放| 欧美国产日本在线| av成人男女| 国产精品一线二线三线| 成av人片一区二区| 日韩成人免费观看| 亚洲第一av网站| av在线视屏| 免费99视频| 久久精品123| 黄色三级生活片| 在线成人av影院| 亚洲www色| 看高清中日韩色视频| 一区二区激情| 久久久久久久久久久久| 91黄色在线观看| 午夜视频在线观看免费视频| 成人黄色av播放免费| 欧美一区影院| 国产xxxx视频| 一本色道久久综合精品竹菊| 成人高清免费观看mv| 国产精品香蕉av| 伊人色**天天综合婷婷| 麻豆短视频在线观看| 欧美三级xxx| 在线视频1区2区| 7777精品久久久大香线蕉小说| 红桃视频国产精品| 亚洲欧美视频在线播放| 在线观看www91| 尤物在线网址| 狼狼综合久久久久综合网| 人人精品人人爱| 粉嫩av性色av蜜臀av网站| 亚洲国产精品推荐| 日本一区二区三区视频在线| 三年中国中文在线观看免费播放| 福利一区二区在线| 日本一区二区免费电影| 精品久久久91| 欧美1区2区3区4区| 在线观看日本一区二区| 亚洲电影激情视频网站| 成人综合影院| 成人免费视频观看视频| 视频一区视频二区中文| 在线免费观看亚洲视频| 亚洲欧美国内爽妇网| 精品国产三区在线| 国产日韩成人内射视频| 亚洲一区二区美女| jizzjizz在线观看| 国产精品香蕉视屏| 奇米综合一区二区三区精品视频| 九九热只有精品| 中文字幕亚洲一区二区三区五十路| 亚洲日本视频在线| 天堂社区在线视频| 亚洲成a天堂v人片| 久久77777|