亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

高并發(fā)思路

liuchengxu / 786人閱讀

摘要:服務器性能數(shù)據(jù)庫性能網(wǎng)絡連接甚至編程語言都會影響并發(fā)數(shù)。但總結起來,高并發(fā)無非就是拆拆拆分分分。比如我們在多個端口配置啟動其他分庫分表合理的基本的優(yōu)化,比如盡量避免全表掃描我個人理解的高并發(fā)就是,把傳統(tǒng)的單元操作進行拆分,分的越細致越好。

服務器性能、數(shù)據(jù)庫性能、網(wǎng)絡連接甚至編程語言都會影響并發(fā)數(shù)。但總結起來,高并發(fā)無非就是拆拆拆分分分

樂觀鎖

樂觀鎖是數(shù)據(jù)庫優(yōu)化的典范。即,通過對數(shù)據(jù)條目的“版本控制”,來約束數(shù)據(jù),防止臟讀寫操作。在實際操作中并不獨占資源。在設計思路上是通過引入“版本”概念來放棄資源約束。
舉例:
數(shù)據(jù)庫中設置`CREATE TABLE tbl (

id varchar(32) ,
/** 樂觀鎖字段 **/
optimistic_lock numeric(12)

)`
java中使用spring @version 關鍵字,

@Version  
@Column(name = "optimistic_lock", columnDefinition = "INTEGER")  
private long optimisticLock;
讀寫分離

數(shù)據(jù)庫中的讀寫分離知識數(shù)據(jù)庫集群的一種典型。并不一定需要按讀寫分離數(shù)據(jù)庫,也可以根據(jù)特定的業(yè)務邏輯來進行分開操作。
我們以讀寫分離舉例:
通常設計兩個數(shù)據(jù)庫master和slave數(shù)據(jù)服務器,在spring中配置兩個datasource












并在dao層調(diào)用時進行讀寫分別調(diào)用。
為保證master/slave服務器的數(shù)據(jù)一致性,兩個服務器間會有同步。

分離resource存儲

我們以圖片分離存儲為例,在web場景中,頁面加載的圖片是非常消耗資源的,通常我們會放在其他的服務器上來進行存儲,針對圖片資源進行優(yōu)化加速。這就像是java編程理念中的“解耦”。
同理,js文件、css文件、zip文件等皆可通過這種方式進行分離,再配合CDN加速技術,實現(xiàn)訪問速度和并發(fā)能力的提升。

CDN加速

CDN加速就是在靠近用戶的物理位置上架設服務器,根據(jù)就近原則使用戶訪問物理上最近的服務器來節(jié)省網(wǎng)絡傳輸時間。
通常這種CDN加速的服務器分散到全國設置世界各地,并適當采用的緩存、專線等技術。
為保證數(shù)據(jù)的一致性,服務器間進行同步。

動態(tài)轉(zhuǎn)靜態(tài)

我們把一次HTTP請求的時間分成幾段:request--> calculate--> response,那么靜態(tài)資源簡化甚至省略了calculate步驟,實現(xiàn)請求-->響應的簡單模型。
我們可以將“冪等”的請求進行靜態(tài)化處理。我們舉例來理解這件事:
比如用戶想快速的查詢自己近一個月的交易總額,按照傳統(tǒng)模式我們需要服務器在用戶查詢后進行累加計算來統(tǒng)計用戶這一個月的交易數(shù)據(jù)。那么我們可以在每天凌晨運行一次spring batch 來統(tǒng)計所有用戶的交易總額信息,并存儲在用戶對應的表里,當用戶查詢時,直接獲取。

緩存

緩存可以理解為動態(tài)轉(zhuǎn)靜態(tài)的一個實例。也可以理解為將硬盤上的數(shù)據(jù)存入內(nèi)存方便讀取。通常設計為key-value形式。
以常用的memcache舉例:

MemCachedClient mc = new MemCachedClient();  
String key = "cacheKey1";  
Object value = SomeClass.getObject();  
mc.set(key, value);  
服務器鏡像

與CDN加速的設計類似,根據(jù)不同地域、網(wǎng)絡服務商等網(wǎng)絡條件假設多個服務器的“鏡像”來實現(xiàn)網(wǎng)絡傳輸環(huán)節(jié)的優(yōu)化。
以此我們可以引出“負載均衡”。

負載均衡

負載均衡的設計理念是根據(jù)資源請求消耗情況來自動調(diào)節(jié)平衡。
比如我們在多個端口配置啟動tomcat:





其他

分庫、分表

合理的Synchronized

基本的SQL優(yōu)化,比如盡量避免全表掃描

我個人理解的高并發(fā)就是,把傳統(tǒng)的“單元操作”進行拆分,分的越細致越好。

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/39560.html

相關文章

  • 處理并發(fā)的一般思路

    摘要:武器工欲善其事,必先利其器,處理高并發(fā)我們當然少不了好的武器。 前言 今天看見有人聊目前系統(tǒng)有2億的PV,該如何優(yōu)化?當我看到這個話題的時候,突然在想自己工作中也遇到了不少高并發(fā)的場景了,所以即興發(fā)揮,在這里簡單總結和分享下,歡迎指正和補充。 正文 讀操作 關于讀,我們一般遵循如下優(yōu)先級: 優(yōu)先級 技術方案 說明 示例 最高 盡可能靜態(tài)化 對實時性要去不高的數(shù)據(jù),盡可能全走C...

    fjcgreat 評論0 收藏0
  • 并發(fā)思路

    摘要:服務器性能數(shù)據(jù)庫性能網(wǎng)絡連接甚至編程語言都會影響并發(fā)數(shù)。但總結起來,高并發(fā)無非就是拆拆拆分分分。比如我們在多個端口配置啟動其他分庫分表合理的基本的優(yōu)化,比如盡量避免全表掃描我個人理解的高并發(fā)就是,把傳統(tǒng)的單元操作進行拆分,分的越細致越好。 服務器性能、數(shù)據(jù)庫性能、網(wǎng)絡連接甚至編程語言都會影響并發(fā)數(shù)。但總結起來,高并發(fā)無非就是拆拆拆分分分。 樂觀鎖 樂觀鎖是數(shù)據(jù)庫優(yōu)化的典范。即,通過對數(shù)...

    coordinate35 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<