在线免费观看麻豆_国产+日韩+欧美_欧美色插_国产无限免费av在线播放_夜色阁亚洲一区二区三区_亚洲男女羞羞无遮挡久久丫

構建互聯網高性能WEB系統經驗總結
  • 更新時間:2025-05-05 03:15:17
  • 開發經驗
  • 發布時間:3年前
  • 1260

互聯網發展至今各種應用層出不窮,用戶量動輒上億。所以如何構建一個優秀的高性能、高可靠的應用系統對每一個開發者至關重要。本文將我所學到和在工作中使用到的一些方法歸納總結,希望給其他同學起到一些借鑒作用,在以后的開發中遇到類似的問題,能快速的找到解決方案。本人主要使用語言是JAVA,所以下面不做特殊說明,都是使用JAVA語言

高性能的關鍵

要想做到高性能,我總結了三點:


緩存

DNS緩存

數據庫緩存

分布式緩存

拆分

業務拆分

數據庫拆分

異步

網絡異步

磁盤異步

使用消息

上面舉了一些三點中常見的情況,無論什么地方遇到性能瓶頸,謹記這三點,大多數時候都能找到解決方案。以下分別介紹在整個架構中各個方面對這三點的應用

無狀態服務


說無狀態服務我們首先要想到無狀態對象,無狀態對象簡單的可以理解為沒有Field的對象,比如model/entity對象就不屬于無狀態對象,因為他含有Field,比如典型MVC場景的**Controller,**Service就是無狀態的,他們只含有method。有的也是有狀態的,比如Structs2框架的Action,所以Structs2現在用得比較少了。有了無狀態對象,我們才有可能構建無狀態服務,因為請求鏈路中不包含有狀態對象,所以我們每一次請求都是獨立的,這樣的架構有助于我們服務進行擴展。

無狀態服務有時候不可避免的會遇到一些有狀態的對象,比如最常見的就是session。因為http請求本身是無狀態的,所以必須cookie和session配合使用,才能識別多次http請求屬于同一用戶。一般有兩種方法解決:


使用cookie存儲

使用分布式session服務

第一種就是將對象信息全部存儲在cookie中,通過相應的算法等在服務端將cookie中的信息讀出來。這些信息一般都會進行加密處理。

第二種方法,就是將session存儲在分布式數據庫或者分布式緩存中,一般存在redis或者memcache中。那這種服務擴展會依賴第三方數據庫或緩存的能力。淘寶有類似的組件,開源世界也有基于memcache和redis的分布式session


無狀態服務用到了拆分和緩存

業務拆分

無狀態可以使應用服務水平擴展,但是當單個應用太大太臃腫時,有必要對應用進行拆分。垂直拆分即按業務拆分,比如電商系統中,按照訂單系統,積分系統等進行拆分。拆分可以方便開發,更方便擴展。系統大了以后,每個業務的訪問量是不一樣的,比如買家系統肯定比賣家系統訪問量大得多,這時候就可以只增加買家系統的機器即可。

除了按照業務的不同拆分成不同的系統以外,針對我們的應用分層也可以進行拆分,一般分為應用層、邏輯層和原子層。應用層就是各種數據、邏輯業務的組裝,邏輯層含有大量可重用邏輯,原子層直接操作數據庫,一些基本的數據操作包含在其中。


不論以何種形式拆分,拆分以后的系統在物理層面上就分離開來,所以系統間的通信是拆分中最重要的問題所在。


RPC

在RPC服務之前已經許多系統通信的方法,比如RMI、WebService,但是RPC以更方便,更高效,跨平臺的方式現在成為主流的通信手段。幾乎每個大公司都有自己的RPC框架:淘寶的HSF、58的SCF,也有非常多優秀的開源框架:Dubbo、GRPC、Thrift等等。國內用dubbo的大公司也很多:京東、當當都是。


MQ

RPC調用一般是用在耦合比較重,同步調用的場景下。而MQ作為另一種異步通信的手段也被廣泛使用在各個業務中。常用的有:ActiveMQ、RabbitMQ、Kafka、RocketMQ。前兩個一般作為企業級應用,主要特點是支持非常多的特性和規范。后兩者是互聯網級的,擁有更強力的吞吐和更高的性能,但是犧牲了很多MQ的特性。mq一般用在要求最終一直性即可的場景,比如用戶注冊和發積分這兩個動作,可以用戶注冊以后直接返回前臺成功,然后發送注冊成功消息給mq系統,發積分動作訂閱注冊事件,消費mq的事件信息。


MQ最大的好處就是削峰和解耦,在RPC式的同步調用場景中,如果同一個邏輯中調用A和B,那么在擴展的時候,A和B一定是需要同時擴展的,但是有了消息以后,A發送消息給B,及時B暫時處理不了,也可以等到A峰值過后B繼續處理,即使B短期無法匹配A的發送消息能力也沒有關系。


數據庫拆分

一般項目都會經歷數據量從小到大的變化,所以數據庫拆分也是根據不同的數據量已經不同的階段進行相應的處理。


讀寫分離,這是大多數應用在遇到性能瓶頸第一要干的事。大多數互聯網應用都是讀占道90%以上的場景。所以一主多從,一個master做寫,其他slave做讀即可。但是這種主從模式也存在一些問題,比如有一些數據需要及時性比較高,就是在寫入以后馬上需要讀到。因為主從同步是通過log異步復制,所以存在數據不一致窗口,這個時候必須要通過強行讀取主庫來保證數據的安全,在開發的時候一定要注意。


垂直分割,就是通過拆分將不同的業務放在不同的數據庫中,這樣就可以減少單一數據庫的壓力,提高整體性能。垂直分割要注意的是業務邊界問題,邊界問題就是有一個表,感覺放在A中和放在B庫中都合適。這個就要靠經驗了,不能過分的考慮,因為其實不論你在之前分得有多好,在應用的迭代中,總會出現更多的找不到明確邊界的表。這個問題在業務模塊劃分中也是一樣。


水平分割,一般就是說sharding。將同一個表中的不同字段,拆分成不同的表,或者將同一張表按照hash或者業務字段分成不同的分片。這種一般需要DAL框架的支持,其中有TDDL、Cobar、Mycat等。主要就是通過框架讓程序編寫者對數據庫的拆分不可見,就像操作一個數據庫一樣。不過現在的DAL框架還不能達到這樣的目的,尤其是在跨庫事務的場景下,一般都需要其他方式處理。


跨庫事務/分布式事務

跨庫事務一般都是通過最終一致性來解決,即不強求ACID都能滿足,容許數據不一致的時間窗口,但是總會有一個時間點數據會到最終一致的狀態。解決方案非常的多,不過核心原理都是一樣,不外乎都是靠補償來完成的。


緩存的使用

計算機世界有一句名言:“計算機科學領域的任何問題都可以通過增加一個間接的中間層來解決”。緩存就是一種中間層。



使用緩存的場景非常非常的多,幾乎到了你能想到的所有地方。這里我們講通常的數據庫數據緩存


緩存一般有兩種,local和remote,一般來說使用一種緩存即可,因為緩存雖好,但是維護緩存的更新和刪除卻是一件非常麻煩得事。一般緩存可分為讀緩存(大多數場景)和寫緩存(一般針對數據安全性比較低的場景)。


比如將數據庫中的數據讀出時同時寫入緩存中,下一次讀數據的時候就可以直接讀取緩存中的數據,從而大大減小數據庫的壓力,說起來很簡單,其實這也存在很多種的架構,每種架構都有利弊,大家可以詳細去了解。


寫緩存,就是先將數據寫入緩存中,然后一段時間再持久化,這樣同樣會提高效率,這種方案的問題在于如果這時候宕機,部分數據將會丟失,所以適用于數據安全性較低的場景。


緩存雖然速度快,除了維護更新較為麻煩的是,內存也是較為昂貴的硬件,所以除了將熱點數據存儲在緩存中,一般緩存中維護數據的索引或者主要字段用于列表顯示,真正的大而全的數據還需要其他方法解決。


靜態化

對于大多數場景,我們的數據在一定時間都是不會變化的,或者說即使變化,也只是頁面的一小部分會發生變化,可以將不變化的部分單獨拿出來做靜態化。比如京東商城的頁面就是靜態化的,靜態化以后,數據不用每次都從緩存或者數據庫中取得,然后再封裝成頁面,而是直接請求返回靜態頁面,性能無疑提升了非常大。

除了以上常用的方法外,還要非常多的重要的方法:


CDN加速

DNS緩存

頁面緩存

使用分布式存儲

使用多線程編寫程序

我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!

本文章出于推來客官網,轉載請表明原文地址:https://www.tlkjt.com/experience/7501.html
推薦文章

在線客服

掃碼聯系客服

3985758

回到頂部

主站蜘蛛池模板: 日韩第2页_中文字幕欧美激情_中国嫩模一级毛片_国产美女在线播放_日本在线看片免费人成视1000_www嫩草_自拍偷拍一区二区三区四区_爱射综合网 一二三四视频社区在线播放中国_91视频免费在线看_色妹子综合网_亚洲中文字幕无线无码毛片_天天操狠狠操_a在线视频观看_日本xxxⅹ18一20岁_www.91精品视频 | 热99欧美_欧美熟妇性XXXXX_日本大逼_久久婷婷五月综合色高清_日韩精品亚洲精品第一页_午夜久久久久久_黄色一级大片在线观看_av最新网 | 女女互磨互喷水高潮les呻吟_av网址免费观看_97精品久久久久中文字幕_快色视频_国产亚洲中文字幕在线_玩偶姐姐在线观看免费_亚洲日韩精品一区二区三区_东凛mdyd950在线播放 | 女人高潮娇喘抽搐喷水视频_萍萍的性荡生活第六季_亚洲欧美日韩久久精品第一区_亚洲一区二区中文字幕在线观看_伊人WWW22综合色_亚洲国产欧美国产第一区_日韩性做爰免费A片AA片_黄色录像在线免费观看 | 亚洲免费天堂_麻豆.www_日本中文字幕精品_麻豆视频在线观看免费_上流社会韩剧免费观看_涩涩屋导航_久久亚洲精品成人_天堂资源中文网 | 国产日韩在线一区_色婷婷激情一区二区三区_狠狠做五月深爱婷婷伊人_成人二区_国产又黄又大又粗视频_亚洲性免费视频_日韩三级精品_91经典在线 | 台湾佬中文娱乐22vvvv_日日干天天干_性爱免费视频_国产在线精品一区在线观看_一区二区不卡免费视频_国产无一区二区_偷看少妇自慰XXXX_亚洲永久精品www | 久久久久久免费精品_国产三区精品_久久久人_久久午夜伦鲁片免费无码_久久综合高清_国产真人性做爰久久网站_亚洲欧美国产精品一区二区_国产00高中生在线视频 | 亚洲日本中文字幕_成人网qqq444_综合色婷婷一区二区亚洲欧美国产_亚洲经典国产_久久不卡日韩美女_日本www免费观看_2018高清国产日本一道国产_亚洲欧美一级黄色录像视频 | 四虎在线免费观看_精品久久久亚洲_亚洲国产精品久久久久婷蜜芽_麻豆网在线观看_中国一级黄色毛片_久久综合久久鬼色_中文字幕在线_国产精品久久久久一区二区三区 | www.嫩草_人人爽人人爽人人片a∨_国产三级农村妇女在线观看_99无人区码一码二码三码四码_182tv午夜_丰满少妇被猛烈进入在线播放_精品久久8X国产免费观看_欧美视频日韩视频 | 久草在线免费福利资源站_欧美黄色特级视频_久久er99热精品一区二区三区_日韩精品视频国产_日韩国产成人无码AV毛片蜜柚_国产精品v欧美精品v日韩精品_久久综合九色综合97婷婷_亚洲一级片大全 | 欧美日产国产成人免费图片_高清av在线_日本洗澡BBW_北条麻妃在线视频中文字幕_午夜小视频网站_爱爱精品视频_亚洲一区二区三区福利_日本韩国一区二区三区视频 | 色婷婷91_亚洲第一狼人伊人AV_国产一区二区免费在线播放_少妇裸体长淫交视频免费观看_日本久久久免费高清_粉嫩91精品久久久久久久99蜜桃_日本韩国在线观看_国产精品久久久久久久久久大牛 | 日韩av视屏_久久麻花精品一二三区_99福利影院_国产激情精品久久久第一区二区_奇米在线_女女女女擦bbb毛片_日本天堂在线播放_www日韩 | 欧美性战a久久久久久_欧美性爱一区三区_大地免费资源观看_精品1区2区3区4区_国产在线榴莲视频导航_97久久精品人人槡人妻人人玩_一级红色毛片_国产AV无码专区亚洲版 | 国产精品18久久久_一本一道久久a久久精品_国产精品久久久久久高潮_九九在线国产视频_blacked蜜桃精品一区_亚洲最新av网站_免费av手机在线观看片_成人亚洲视频在线观看 | 久久久久国产精品视频_欧美色第一页_韩国精品久久久_自拍偷自拍亚洲精品播放_亚洲AV中文无码乱人伦在线咪咕_疾速追杀4免费高清完整在线观看_欧美一级性爱免费观看_亚洲国产美女精品久久久久 | 一区二区中文字幕_狠狠色丁香婷婷_国产成人AV片免费_中文字幕日韩精品在线观看_精品人妻无码一区二区三区视频_免费的黄色一级片_中文字幕二区三区_亚洲欧美国内爽妇网 | 红杏国产成人精品视频_欧美超碰在线观看_免费日韩一区_国产一二三精品无码不卡日本_www.亚洲精品.com_国产精品久久久久久久岛一牛影视_国产精品人妻一区夜夜爱_人人人人爱 | 天天爱天天做天天爽歪歪_视频一区二区中文字幕_瑞典性xxxxxhd高清_爱爱视频一区_婷婷五月开心色婷在线尤物_日韩精品一区二区三区_久久999精品_九一在线啪 | 国产精品人妻无码免费久久久_伊人久久无码大香线蕉综合6_国内外在线视频成人_AV在线网址免费观看不卡_www.5588.com毛片_女人高潮被爽到呻吟在线观看_蜜桃视频一区二区在线观看_日本三区在线观看 | 久久精品青青大伊人av_在线日本看片免费人成视久网_日本色呦呦_一级黄色视频久久网_久久资源免费视频_久久狼人综合_午夜影院在线免费_出差被绝伦上司侵犯中文字幕 | 亚洲二区不卡_一本大道久久东京热无码av_青青草草视频_av色综合网_毛片一区二区三区无码_亚洲中文字慕日产2021_亚洲精品国产精品乱码不99按摩_亚洲成Av人片在线观看不卡 | 中日韩精品无码一区二区三区_国产精品福利视频一区_国产成人一区二区视频免费_国产精品麻豆视频国产馆_日本国产一区二区三区在线观看_free国产粉嫩熟妇xxxhd_国产精品无码久久综合_激情影院内射美女 | 懂色一区二区三区av片_91色在线_97在线国产视频_99久久久国产精品免费牛牛_99国产精品白浆在线观看免费_亚洲在线色_国产无限免费av在线播放_日韩欧美国产免费 | 男人天堂免费_小少妇的粉嫩小泬_www蜜桃视频_国产无遮挡裸露视频免费_成人性生交片无码免费看_国产亚洲自在精品久久_日产日韩在线亚洲欧美_夜夜看人久看2022 | 最大av在线_12av视频_玩弄邻居少妇高潮潮喷的经历_欧美视频在线观看一区_97久久超碰精品国产_性少妇freesexvide_久久成人国产视频_婷婷五月婷婷五月 | 自拍理论片_2019中文字幕在线视频_91精品国产麻豆国产在线观看_精品无人区一区二区三区_欧洲妓女在线视频免费看_精品久久久久久无码人妻_四级毛片_国产精品高清网站 | 欧美激情高潮无遮挡_成人无码区免费a片www_成年女人免费视频播放人_2015天堂网_精品一二三区视频_久久久天堂国产精品女人_成人无码潮喷在线观看_亚洲AV永久无码天堂网毛片 | 亚洲欧洲免费_97精品人人妻人人_无码国产精品人妻一区二区_亚洲欧美日韩综合久久_真人性23式(动)黄色毛片_国产网红主播精品av_色肉色伦交av色肉色伦_久久精品一品道久久精品 | 日本黄色天堂_一级毛片免费毛片一级毛片免费_999久久久精品一区二区_日韩欧美中文字幕在线播放_丰满又黄又爽少妇毛片_免费污站18禁的刺激_亚洲成人欧美_经典国产乱子伦精品视频 | www.夜夜骑.com_亚洲一级毛片视频_精品久久久久久乱码天堂_亚洲视频三区_欧美亚洲_美女视频黄频大全免费_青青草原在线免费观看视频_草逼欧美 亚洲精品乱码日本按摩久久久久_免费久久精品视频_九九色网站_久久成人秘免费无码_女友的滋味在线观看_极品少妇hdxx麻豆hdxx_伊人婷婷涩六月丁香七月_香港午夜三级A三级三点在线观看 | 红杏一区二区三区_午夜理论片yy6080私人影院_少妇被爽到高潮喷水久久欧美精品_久久国产精品色av免费看_久久瑟瑟_99热这里只有精品免费_久久艹艹艹_好色一区 | 91麻豆精品国产91久久久久久久久_一级毛片真人实干_视频成人免费_日韩欧美亚洲视频_亚洲欧美日韩国产成人精品_成人毛片免费网站_韩国毛片在线观看_日本午夜一区 | 毛片免费视频在线观看_日韩伦乱_97欧美精品系列一区二区_国产精品亲子乱子伦xxxx裸_操喷视频_欧美蜜桃视频_天上人间av网_亚洲日韩中文字幕日本 | 4虎av_久久免费国产精品_亚洲成本人无码薄码区_精品台湾swag在线播放_伊人yinren22综合开心_欧美日韩在线观看一区二区三区_亚洲AV之男人的天堂网站_yellow日本高清在线 | 亚洲不卡网站_免费无码成人AV在线播放_亚洲清色_5566成人_亚洲亚洲人成网站网址_狠狠撸在线视频_免费高清三级中文_国产精品免费视频xxxx | 中文字幕在线观看一区二区_日本极品少妇videossexhd_欧美中文一区_亚洲成人www_国产精品一级无遮挡毛片_香蕉av久久一区二区三区_VideOS性饥渴_国产精品萝li | freesex呦交_人人精品视频_国产日韩精品综合网站_亚欧在线高清专区_超碰97最新_亚洲欧洲一区二区在线观看_久草在线资源观看_二区三区在线 | av免费网页_久久久无码a片观看免费_亚洲做爰日本做爰_7799精品天天综合网_97精品在线播放_99热手机在线_亚洲色图啪啪_日韩欧美在线中文字幕 |