今年在公司重構(寫)了一個老項目,踩了無數的坑。 中間好幾次遇到問題,甚至感覺項目可能要失敗了,好在最后終於成功上線了。 雖然被坑的不要不要的,但也從中領悟到了不少東西,在這里記錄一下,順便分享給大家樂呵樂呵。 先簡單介紹 ...
上一篇主要從設計層面,分享了一些小經驗。 因軟件系統有其復雜性和多樣性,不同的場景 架構下,系統的瓶頸各不相同。 文章里的一些想法和設計並不通用,主要針對的是高並發場景下海量數據的實時查詢。 這次再分享一個更貼近生活的案例。 有時看似簡單的邏輯,往往隱藏了最深的坑,甚至成為系統的性能瓶頸。 舉個栗子 微博用戶主頁 這個頁面應該都不陌生,業務也並不復雜。 值得注意的是紅線圈出的功能:粉絲數量,微博總 ...
2022-01-21 08:38 14 3164 推薦指數:
今年在公司重構(寫)了一個老項目,踩了無數的坑。 中間好幾次遇到問題,甚至感覺項目可能要失敗了,好在最后終於成功上線了。 雖然被坑的不要不要的,但也從中領悟到了不少東西,在這里記錄一下,順便分享給大家樂呵樂呵。 先簡單介紹 ...
高並發場景之RabbitMQ 上次我們介紹了在單機、集群下高並發場景可以選擇的一些方案,傳送門:高並發場景之一般解決方案 但是也發現了一些問題,比如集群下使用ConcurrentQueue或加鎖都不能解決問題,后來采用Redis隊列也不能完全解決問題, 因為使用Redis要自己實現分布式鎖 ...
本文由“聲網Agora”的RTC開發者社區整理。 1、概述 本文將分享新浪微博系統開發工程師陳浩在 RTC 2018 實時互聯網大會上的演講。他分享了新浪微博直播互動答題架構設計的實戰經驗。其背后的百萬高並發實時架構,值得借鑒並用於未來更多場景中。本文正文是對演講內容的整理,請繼續往下閱讀 ...
在項目中使用HttpClient可能是很普遍,尤其在當下微服務大火形勢下,如果服務之間是http調用就少不了跟http客戶端找交道.由於項目用戶規模不同以及應用場景不同,很多時候可能不需要特別處理也.然而在一些高並發場景下必須要做一些優化. 項目是快遞公司的快件軌跡查詢項目 ...
如何確保一個方法,或者一塊代碼在高並發情況下,同一時間只能被一個線程執行,單體應用可以使用並發處理相關的 API 進行控制,但單體應用架構演變為分布式微服務架構后,跨進程的實例部署,顯然就沒辦法通過應用層鎖的機制來控制並發了。那么鎖都有哪些類型,為什么要使用鎖,鎖的使用場景有哪些?今天 ...
一、高並發 1. 高並發(High Concurrency)是互聯網分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。 高並發相關常用的一些指標有響應時間(Response Time),吞吐量(Throughput),每秒查詢率QPS ...
高並發場景下的限流策略: 在開發高並發系統時,有很多手段來保護系統:緩存、降級、限流。 當訪問量快速增長、服務可能會出現一些問題(響應超時),或者會存在非核心服務影響到核心流程的性能時, 仍然需要保證服務的可用性,即便是有損服務。所以意味着我們在設計服務的時候,需要一些手段或者關鍵數據 ...
典型的兩個現實案例: 我們先看兩個用Go做消息推送的案例實際處理能力。 360消息推送的數據: 16台機器,標配:24個硬件線程,64GB內存 Linux Kernel 2.6.32 x86_64 單機80萬並發連接,load 0.2~0.4,CPU 總使用率 7%~10%,內存占用20GB ...