在軟件研發(fā)過程中,經(jīng)常會(huì)聽到高并發(fā)、高可用這兩詞,但是很多人都不知道如何做到服務(wù)的高并發(fā)、高可用?要實(shí)現(xiàn)這個(gè)要求,多線程技術(shù),分布式技術(shù),緩存技術(shù)和epoll多路復(fù)用技術(shù)等都是非常有效的。除了服務(wù)開發(fā)過程中需要注意相關(guān)技術(shù)的應(yīng)用,關(guān)鍵還是服務(wù)部署時(shí)需要注意的問題。專業(yè)的事需要交給專家來完成。一個(gè)專業(yè)級(jí)別的服務(wù)器(集群)已經(jīng)包含了用戶大部分的關(guān)注和需求,能讓用戶能更專注于系統(tǒng)實(shí)施及應(yīng)用。
如何做到服務(wù)的高并發(fā)、高可用?
這個(gè)看起來好像只有一個(gè)問題?實(shí)際上卻需要專著來闡述才能完成清晰的解答,在此只能泛泛而談?wù)f個(gè)概念。高并發(fā),高可用是兩個(gè)方面。
高并發(fā):在同一時(shí)間內(nèi)能夠處理越多的請(qǐng)求越好,這就要求我們的服務(wù)器能夠響應(yīng)這些請(qǐng)求,比如需要加大內(nèi)存,加大帶寬,在這些達(dá)到一定程度的時(shí)候,我們就只能通過水平擴(kuò)展了,就是進(jìn)行分布式部署,讓請(qǐng)求落在不同的機(jī)器上,這樣就可以處理更多的請(qǐng)求,如何讓請(qǐng)求落在不同的機(jī)器上呢,這就需要我們?cè)O(shè)置代理轉(zhuǎn)發(fā),一般是nginx進(jìn)行負(fù)載均衡,讓請(qǐng)求合理的分配到各個(gè)機(jī)器上。同時(shí)還要做到如下幾點(diǎn):
1、應(yīng)用級(jí)緩存
2、HTTP緩存
3、多級(jí)緩存
4、池化
5、異步并發(fā)
6、擴(kuò)容
7、隊(duì)列
高可用:就是數(shù)據(jù)不能丟失,出現(xiàn)問題之后,要能有自愈能力,就是一個(gè)服務(wù)器掛了,并不影響服務(wù)的提供,這里我們就可以設(shè)置數(shù)據(jù)庫備份,主從配置,服務(wù)器也進(jìn)行監(jiān)聽,如果有服務(wù)器宕機(jī),可以自動(dòng)切換到可用的機(jī)器上。haproxy可以做到這樣的控制。同時(shí)還要做到如下幾點(diǎn):
1、負(fù)載均衡
2、限流
3、降級(jí)
4、隔離
5、超時(shí)與重試
6、回滾
7、壓測(cè)與預(yù)案
通過上述介紹,如何做到服務(wù)的高并發(fā)、高可用相信大家已經(jīng)清楚了吧,想了解更多關(guān)于高并發(fā)、高可用的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。