chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

高并發(fā)系統(tǒng)的藝術:如何在流量洪峰中游刃有余

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-05 13:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

我們常說的三高,高并發(fā)、高可用、高性能,這些技術是構建現(xiàn)代互聯(lián)網(wǎng)應用程序所必需的。對于京東618備戰(zhàn)來說,所有的中臺系統(tǒng)服務,無疑都是圍繞著三高來展開的。而對于京東龐大的客戶群體,高并發(fā)的要求尤為重要。用戶對在線服務的需求和期望不斷提高,系統(tǒng)的并發(fā)處理能力成為衡量其性能和用戶體驗的關鍵指標之一。高并發(fā)系統(tǒng)不僅僅是大型互聯(lián)網(wǎng)企業(yè)的專利,對于任何希望在市場中占據(jù)一席之地的公司來說,能夠處理大量并發(fā)請求的能力都是至關重要的。

高并發(fā)系統(tǒng)的設計和實現(xiàn)是一個復雜且多層次的過程,涉及到硬件資源的合理利用、系統(tǒng)架構的精心設計、并發(fā)控制技術的應用以及性能調(diào)優(yōu)等多個方面。無論是電商平臺在大促期間應對突發(fā)流量,還是社交媒體在熱點事件發(fā)生時的流量激增,抑或是金融系統(tǒng)在交易高峰期的平穩(wěn)運行,都需要一個高效、穩(wěn)定、可擴展的高并發(fā)系統(tǒng)作為支撐。

接下來我通過一張思維導圖展開我的分享,幫大家梳理一下一個高并發(fā)系統(tǒng)所需要考慮的技術點。

wKgZomawZnKANlnmAAj89Sh41Aw003.png

單機維度

在單機維度上, 我們一般分為硬件維度和代碼維度兩個方向考慮。硬件維度比較簡單,就是提升單機的硬件性能和網(wǎng)絡帶寬。而代碼維度,則是在高并發(fā)系統(tǒng)架構設計時,最容易被大家忽視的,尤其是大量的脫離一線研發(fā)并進化成PPT架構師的今天,單機維度基本不在考量范圍。

但不積跬步無以至千里,有的時候單機接口的的性能優(yōu)化,會帶來很高的經(jīng)濟成本價值。在代碼維度,我這里重點介紹一種情況,關于多線程和異步方法。

a. 多線程和異步方法的誤區(qū)

關于多線程和異步方法的概念,我再面試候選人的時候,發(fā)現(xiàn)很多人對此都有誤區(qū)。在此,我先詳細的一下他倆的概念:

多線程:多線程是指在一個進程中可以同時運行多個線程,每個線程執(zhí)行不同的任務。Java通過java.lang.Thread類和java.util.concurrent包提供了多線程編程的支持。多線程的主要目的是為了充分利用CPU資源,提高程序的執(zhí)行效率。

異步方法:異步方法是指在調(diào)用某個方法時,不需要等待該方法執(zhí)行完成即可繼續(xù)執(zhí)行后續(xù)代碼。Java通過CompletableFuture和異步回調(diào)機制提供了異步編程的支持。異步方法的主要目的是為了提高系統(tǒng)的響應能力和資源利用率。

b. 多線程能夠解決高并發(fā)場景么

當大家了解了多線程和異步方法的概念后,那么我們就可以認真思考一下,多線程一定能提升系統(tǒng)的并發(fā)能力么?

我的結論是:多線程可以提升部分服務的并發(fā)能力,但并不能顯著提高性能。

首先我們先了解,Tomcat的Servlet機制是基于多線程實現(xiàn)的,而如果你在單次請求中在此開辟線程池進行多線程處理,在一定的并發(fā)情況下,你可能只是改善了單次請求的TP99,但無法有效提升系統(tǒng)的并發(fā)能力。因為多線程的性能提升與CPU核心數(shù)密切相關。如果系統(tǒng)只有一個CPU核心,那么多個線程只能在該核心上輪流執(zhí)行,無法實現(xiàn)真正的并行處理。而我們的宿主機一般也就是8C或者16C,在面單機上千的QPS請求時,多線程只會增加CPU上下文切換的負擔。

舉個簡單并且常見的例子,批量下單接口。我們常見的做法就是在批量下單接口中開辟線程池,然后建個多個下單在線程池中并行處理。這樣做的結果是,在請求量低的情況下,效果還是可以的,單次請求的QPS也會很低,但如果單機面臨每秒上千次的下單請求,這種實現(xiàn)方式就會出現(xiàn)問題。最直觀的觀察,可以通過TP99的監(jiān)控曲線發(fā)現(xiàn),就是請求量跟TP99呈現(xiàn)嚴重的正相關性。

而真正有效的提升下單接口的并發(fā)能力,是通過異步方式實現(xiàn)。但異步方式又會增加系統(tǒng)的設計復雜度,比如下單失敗,異步回調(diào)設計和數(shù)據(jù)一致性設計等等,也在考量范圍之內(nèi),這里就不詳細展開說明。

c. 小結

多線程和異步方法是Java開發(fā)中兩種重要的并發(fā)處理技術,它們在提高系統(tǒng)性能和響應能力方面各有優(yōu)勢。多線程通過并行處理任務,充分利用CPU資源,適用于CPU密集型任務和需要并行處理的場景。異步方法通過非阻塞I/O操作和異步回調(diào)機制,提高系統(tǒng)的響應能力和資源利用率,適用于I/O密集型任務和事件驅動架構。

此外當然還有大家經(jīng)常樂于討論的JVM調(diào)優(yōu)問題,基于JVM調(diào)優(yōu),包括垃圾回收器的選擇,參數(shù)的合理優(yōu)化,當然,還有一點,其實大家平時關注不多,就是采用更高版本的JDK和更新的Spring框架,因為高版本的框架會對性能本身有不錯的優(yōu)化。關于這點,我在另一篇文章中有重點介紹:性能加速包: SpringBoot 2.7&JDK 17,你敢嘗一嘗嗎

多機維度

在多機維度考慮系統(tǒng)的高并發(fā)性能,應該是大家最長能夠想到的場景了,也是架構師們最熱衷討論的點。

首先是對系統(tǒng)的拆分角度來說,第一個是單體應用的水平擴展問題,就是我們所說的負載均衡集群,換成我們經(jīng)常聽到的一個詞: 擴容。擴容一般針對負載均衡集群進行水平擴展,用于解決單機無法承載高并發(fā)的情況,這也是互聯(lián)網(wǎng)公司解決高并發(fā)場景的最常用手段,就比如每次雙十一或者618前夕,我們都會成倍的擴容我們的服務實例。

對系統(tǒng)的另一個拆分角度,叫做垂直拆分,也就是我們常見的分布式系統(tǒng)。比如按照領域劃分,我們將一個大的單體服務,拆分成不同的子領域系統(tǒng),然后每個子領域系統(tǒng)單獨承擔各自的流量,而不會相互影響。還比如說長江的CQRS設計架構,翻譯過來是指令查詢分離的設計方式,通過查詢和指令服務拆分,來講高并發(fā)的查詢場景單獨拆分出來進行設計。

既然采用了分布式的微服務架構,那么分布式系統(tǒng)的一些常見痛點也是高并發(fā)要考慮的,比如熔斷,降級,限流,超時等設計,這些本身是為了增強分布式系統(tǒng)的魯棒性,從而間接的增強系統(tǒng)的高并發(fā)承載能力。關于微服務架構,在此處不再贅述,有興趣的,可以看我的另一篇文章:【實踐篇】教你玩轉微服務--基于DDD的微服務架構落地實踐之路


垂直維度

所謂垂直維度,是為了區(qū)分于單機維度和多機維度的,垂直的意思是針對一個業(yè)務系統(tǒng)在系統(tǒng)層級的垂直劃分,包括業(yè)務應用和數(shù)據(jù)庫。要知道,很多高并發(fā)場景,不管是寫場景還是讀場景,當數(shù)據(jù)庫維度出現(xiàn)瓶頸,擴容就不想業(yè)務應用服務那么簡單了,所以要區(qū)分來說。

a. 業(yè)務應用

唯物辯證法中有一個重要概念,就是一切從實際出發(fā),具體問題具體分析。對于高并發(fā)系統(tǒng)的構建,雖然有通用的手段和方法論,但沒有統(tǒng)一的落地方案,必須根據(jù)具體的業(yè)務應用場景進行分析和設計。比如你的系統(tǒng)是高并發(fā)讀還是高并發(fā)寫,處理思路也是完全不一樣的。當然常見的手段和方法論核心包括兩點:緩存和異步。但具體到相應的業(yè)務,需要仔細思考緩存邏輯怎么設計,異步流程怎么設計,如何保證數(shù)據(jù)一致性等等。

這塊我有一個項目案例,就是在SAAS商城中秒殺場景下,如何設計高性能庫存扣減邏輯,我將這塊內(nèi)容寫在了我另一篇文章里:高并發(fā)場景下的庫存管理,理論與實戰(zhàn)能否兼得?

b. 數(shù)據(jù)庫

在存儲媒介這塊其實高并發(fā)是不好設計的。比如關系型數(shù)據(jù)庫MySQL, 在進行擴展要比業(yè)務應用復雜不少,涉及到的就是數(shù)據(jù)庫的分庫分表邏輯。

這塊可以參考之前我寫過的一篇文章:分而治之--淺談分庫分表及實踐之路。

而對于讀場景下的高并發(fā)請求,還有一種最常見的處理手段,就是異構存儲介質(zhì),實現(xiàn)讀寫分離,最常見的就是MySQL關系型數(shù)據(jù)庫負責寫,ES這種文檔類數(shù)據(jù)庫負責讀。而他的技術難點則在于數(shù)據(jù)的同步和數(shù)據(jù)一致性上。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2992

    瀏覽量

    114834
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3980

    瀏覽量

    67433
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MTK安卓開發(fā)板_安卓主板定制開發(fā)_聯(lián)發(fā)科展銳安卓主板方案

    MT8768開發(fā)板是一款集高效運算與低功耗特性于一身的嵌入式開發(fā)平臺。憑借強大的處理器性能和出色的硬件架構,它能夠在多任務處理場景中游刃有余,同時確保各類接口的可靠運行。其設計在溫度適應性和抗干擾
    的頭像 發(fā)表于 09-15 20:03 ?219次閱讀
    MTK安卓開發(fā)板_安卓主板定制開發(fā)_聯(lián)發(fā)科展銳安卓主板方案

    華納云:海外服務器負載均衡與可用架構設計

    有效分擔流量壓力、提升系統(tǒng)穩(wěn)定性和用戶體驗。在實際部署中,需要從負載分配策略、健康檢查機制、故障切換、數(shù)據(jù)同步以及監(jiān)控告警等多個層面系統(tǒng)規(guī)劃。 負載均衡是實現(xiàn)可用的第一步。通過負載均
    的頭像 發(fā)表于 08-28 18:32 ?332次閱讀

    Nginx并發(fā)優(yōu)化方案

    作為一名在生產(chǎn)環(huán)境中摸爬滾打多年的運維工程師,我見過太多因為Nginx配置不當導致的性能瓶頸。今天分享一套完整的Nginx并發(fā)優(yōu)化方案,幫助你的系統(tǒng)從10萬QPS突破到百萬級別。
    的頭像 發(fā)表于 08-13 15:51 ?508次閱讀

    鴻蒙5開發(fā)寶藏案例分享---應用并發(fā)設計

    ?** 鴻蒙并發(fā)編程實戰(zhàn)指南:解鎖ArkTS多線程黑科技** 嘿,開發(fā)者朋友們! 今天給大家扒一扒鴻蒙官方文檔里藏著的并發(fā)編程寶藏—— 100+實戰(zhàn)場景解決方案 !從金融理財?shù)接螒蜷_發(fā),從折疊屏適配
    發(fā)表于 06-12 16:19

    Ingress網(wǎng)關并發(fā)請求的解決方案

    當 Ingress 網(wǎng)關面臨高并發(fā)請求(如 QPS 超過 10萬+)時,可能導致服務崩潰、響應延遲激增或資源耗盡。
    的頭像 發(fā)表于 05-14 11:52 ?532次閱讀

    INT-based Routing(基于遙測的智能路由)如何重構AI集群流量調(diào)度?

    在GPT-4o參數(shù)規(guī)模突破10萬億、千卡集群成為AI訓練標配的今天,全球互聯(lián)網(wǎng)正經(jīng)歷著前所未有的流量風暴。當單次模型訓練可產(chǎn)生相當于YouTube全球三日流量的數(shù)據(jù)洪流,當分布式推理系統(tǒng)要求微秒級延遲保障,傳統(tǒng)網(wǎng)絡架構的
    的頭像 發(fā)表于 05-12 17:06 ?607次閱讀
    INT-based Routing(基于遙測的智能路由)如何重構AI集群<b class='flag-5'>流量</b>調(diào)度?

    RAKsmart服務器如何重塑AI并發(fā)算力格局

    在AI大模型參數(shù)量突破萬億級、實時推理需求激增的當下,傳統(tǒng)服務器架構的并發(fā)處理能力已逼近物理極限。RAKsmart通過“硬件重構+軟件定義”的雙引擎創(chuàng)新,推出新一代AI服務器解決方案。下面,AI部落小編為您解析RAKsmart服務器如何重塑AI
    的頭像 發(fā)表于 04-03 10:37 ?501次閱讀

    TurMass? 如何幫助解決 UWB 定位系統(tǒng)大規(guī)模終端標簽并發(fā)通信沖突問題?

    在大容量定位終端數(shù)據(jù)并發(fā)場景中,現(xiàn)有通信技術因信號沖突、系統(tǒng)容量受限等問題,難以滿足需求。TurMass? 通信技術通過多信道設計、時隙劃分、定位與通信一體化等創(chuàng)新方案,有效解決了
    的頭像 發(fā)表于 03-17 14:38 ?625次閱讀
    TurMass? 如何幫助解決 UWB 定位<b class='flag-5'>系統(tǒng)</b>大規(guī)模終端標簽<b class='flag-5'>高</b><b class='flag-5'>并發(fā)</b>通信沖突問題?

    明渠流量監(jiān)測管理系統(tǒng)及功能概述

    一、明渠流量監(jiān)測管理系統(tǒng)概述明渠流量監(jiān)測管理系統(tǒng)旨在實時、準確地監(jiān)測明渠中的流量、水位等關鍵數(shù)據(jù),為水資源管理、洪水預警、灌溉控制、環(huán)保排污
    的頭像 發(fā)表于 03-13 11:08 ?497次閱讀
    明渠<b class='flag-5'>流量</b>監(jiān)測管理<b class='flag-5'>系統(tǒng)</b>及功能概述

    揭秘深層的華美:用于藝術品與考古檢測的光譜技術

    歷經(jīng)歲月的文物與藝術品的避免不了失真的遺憾,而光譜技術恰巧能夠揭示表象下的深層信息。友思特新品 MUSES 9系列光譜相機,其高空間分辨率與超寬光譜范圍的優(yōu)勢特征,幫助解密古文物與藝術品隱藏的歷史真相。
    的頭像 發(fā)表于 02-06 14:22 ?712次閱讀
    揭秘深層的華美:用于<b class='flag-5'>藝術</b>品與考古檢測的<b class='flag-5'>高</b>光譜技術

    華為云 FlexusX 實例下的 Kafka 集群部署實踐與性能優(yōu)化

    前言 華為云 FlexusX 實例,以創(chuàng)新的柔性算力技術,為 Kafka 集群部署帶來前所未有的性能飛躍。其靈活的 CPU 與內(nèi)存配比,結合智能調(diào)度與加速技術,讓 Kafka 在并發(fā)場景下依然
    的頭像 發(fā)表于 01-07 17:23 ?610次閱讀
    華為云 FlexusX 實例下的 Kafka 集群部署實踐與性能優(yōu)化

    水電站生態(tài)下泄流量監(jiān)測系統(tǒng):實時捕捉流量的細微變化

    水電站生態(tài)下泄流量監(jiān)測系統(tǒng)是一種專門用于監(jiān)測水電站生態(tài)流量的高精度監(jiān)測系統(tǒng)。該系統(tǒng)通過布設在水電站壩體、引水渠、泄洪口等關鍵位置的
    的頭像 發(fā)表于 12-19 17:31 ?811次閱讀
    水電站生態(tài)下泄<b class='flag-5'>流量</b>監(jiān)測<b class='flag-5'>系統(tǒng)</b>:實時捕捉<b class='flag-5'>流量</b>的細微變化

    雷達流量計于天然河流河道及渠道流量監(jiān)測系統(tǒng)的應用與卓越特性

    雷達流量計于天然河流河道及渠道流量監(jiān)測系統(tǒng)的應用與卓越特性
    的頭像 發(fā)表于 12-06 09:32 ?666次閱讀
    雷達<b class='flag-5'>流量</b>計于天然河流河道及渠道<b class='flag-5'>流量</b>監(jiān)測<b class='flag-5'>系統(tǒng)</b>的應用與卓越特性

    灌區(qū)渠道生態(tài)流量監(jiān)測系統(tǒng):保障水資源可持續(xù)利用的核心利器

    了新的曙光,成為保障農(nóng)業(yè)灌溉順利進行的有力助手。 灌區(qū)渠道生態(tài)流量監(jiān)測系統(tǒng)設備 雷達流量計 :利用雷達波測量水位并結合明渠斷面參數(shù)計算流量。它具有非接觸、精度
    的頭像 發(fā)表于 11-06 17:10 ?996次閱讀
    灌區(qū)渠道生態(tài)<b class='flag-5'>流量</b>監(jiān)測<b class='flag-5'>系統(tǒng)</b>:保障水資源可持續(xù)利用的核心利器

    生態(tài)流量在線監(jiān)測系統(tǒng)解決方案

    一、背景隨著環(huán)境保護意識的日益增強,水資源管理和生態(tài)保護成為了全球關注的焦點。在河流、湖泊等水域管理中,生態(tài)流量的監(jiān)測和調(diào)控對于維護水生態(tài)系統(tǒng)的平衡和生物多樣性具有重要意義。為此,開發(fā)一套高效、準確
    的頭像 發(fā)表于 10-28 14:43 ?846次閱讀
    生態(tài)<b class='flag-5'>流量</b>在線監(jiān)測<b class='flag-5'>系統(tǒng)</b>解決方案