新聞中心
你們都是怎么確保系統(tǒng)不被突然的訪問流量壓垮的?
在系統(tǒng)的設(shè)計之初就要想到這個問題,建議使用微服務(wù)架構(gòu),對流量壓力大的微服務(wù),多配置服務(wù)器,沒有什么流量壓力是多配置一臺服務(wù)器不能解決的,如果不夠,那就多配10臺,再不夠,就100臺,簡單粗暴而有效,我就不信那個邪。代碼優(yōu)化得再好,不如增加一個實例。

三河網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
兩個方向來思考和回答這個問題:
第一點是努力提升整體系統(tǒng)的性能,
首先需要做壓測,分析系統(tǒng)當(dāng)前的容量和瓶頸,對照對業(yè)務(wù)場景容量的評估,評估是否要提前做擴(kuò)容。
性能瓶頸的問題,那就是更細(xì)的活了,需要從系統(tǒng)、架構(gòu)、接口、代碼層面來優(yōu)化。
第二點就是當(dāng)前系統(tǒng)總有性能的上限,遇到流量異常突增,那該怎么辦?
限流,思路是確保能處理的流量可以得到處理,超限的流量拒絕,典型場景是秒殺。
降級,思路是保證業(yè)務(wù)的關(guān)鍵流程,舍棄分支流程。實際上降級主要用在服務(wù)不穩(wěn)定情況下,當(dāng)然高并發(fā)流量是導(dǎo)致系統(tǒng)不穩(wěn)定的一個重要因素。
另外,需要對系統(tǒng)的各個環(huán)節(jié)做好監(jiān)控,以便及時發(fā)現(xiàn)異常,及時處理。
把系統(tǒng)部署在彈性云上,則可以進(jìn)行動態(tài)的擴(kuò)容和縮容。
最后,并不是說上述的一個策略就能解決所有問題,保證系統(tǒng)的高可用是一個很復(fù)雜的工作,需要方方面面的努力。
確保系統(tǒng)的高可用,要做的事情非常多,比如使用 Redis 緩存數(shù)據(jù)庫的數(shù)據(jù),降低數(shù)據(jù)庫的壓力,同時也要注意緩存穿透、雪崩、擊穿等問題;但要是說到“不要被突增的訪問量擊垮”,通常就會到我們常說的分布式架構(gòu)三板斧:限流、熔斷、降級。
限流理解起來很簡單,比如故宮每天只賣八萬張票,超過八萬的游客,無法買票進(jìn)入,因為如果超過八萬人,景點的工作人員可能就忙不過來,過于擁擠的景點也會影響游客的體驗和心情,并且還會有安全隱患;只賣N張票,這就是一種限流的手段。
軟件架構(gòu)中的限流也一樣,就是流量徒增的時候,只允許一部分流量進(jìn)來,而多余的那部分,就拒絕掉。
通常我們可以通過限流算法達(dá)到這樣的效果,比如計數(shù)器法、滑動窗口法、漏桶算法、令牌桶算法,每個算法的詳解之前的文章有介紹過,這里就不在占用篇幅了。上面的例子中,故宮每天只賣八萬張票,有點兒類似于令牌桶算法,票就相當(dāng)于令牌,只有拿到令牌的請求,才能訪問到服務(wù)。
有些程序員一直堅持反對使用redis怎么辦?
一方面我肯定是不支持這些“上古”程序員做法的,但是另外一方面,我也是非常理解他們的想法的。
首先,有些公司的風(fēng)格就是:“可以不干,但是不能犯錯”。
我曾經(jīng)在一家央企的 IT 部門工作,對此有著深刻的認(rèn)識:你的系統(tǒng)可以一年到頭沒有什么新功能,幾年不做升級,但是千萬不能有生產(chǎn)事故,否則可能真的會“萬劫不復(fù)”,也就是績效會低、獎金會少,甚至升職無望。
在這種環(huán)境中工作的大部分老員工,除非是迫不得已,幾乎不會主動去升級和完善系統(tǒng)的,“能穩(wěn)定運行就行了”。
分享大佬的回答,似乎很有道理。
不要告訴我們用不用redis,你得告訴我們你為什么想要用redis,不用redis業(yè)務(wù)會有什么問題?天下沒有免費的午餐,不動腦子直接上緩存/NOSQL可能會帶來更多更嚴(yán)重的問題。
單一數(shù)據(jù)庫最大的好處在于事務(wù)性實現(xiàn)簡單,由數(shù)據(jù)庫自己保證。舉個簡單的例子,下訂單需要扣除一個庫存,然后插入一條訂單條目,如果庫存和訂單都是數(shù)據(jù)庫表項的話這個事務(wù)是無懈可擊的,如果庫存在redis里,訂單條目是MySQL,通常就需要先寫redis,成功之后再寫數(shù)據(jù)庫,如果寫數(shù)據(jù)庫失敗了還需要回滾redis,如果最后這個回滾因為網(wǎng)絡(luò)之類的原因失敗了,就會多扣一個庫存。不要以為這些事情很好解決,事務(wù)性處理的復(fù)雜性遠(yuǎn)遠(yuǎn)超過你的想象,比如說還有寫MySQL在提交的一瞬間連接斷了這種情況,你都沒法判斷提交到底成功了還是失敗了,那你的redis是回滾還是不回滾?
所以引入新的層一定要說清楚,你為了什么目的一定要用緩存/NOSQL,能接受什么樣的一致性模型,否則就是在胡鬧。
這和眼鏡一樣 需要的時候 自然就會去用了 你說我就不喜歡戴眼鏡 那可以 要不你就眼前一片模糊自己忍著 要不你就去做手術(shù) 只不過戴眼鏡是解決你近視問題的一種比較簡單高效又多人用而且成熟的手段而已
一個非常好的問題。我是工作多年的Web應(yīng)用架構(gòu)師,來回答一下這個問題。歡迎關(guān)注我,了解更多IT專業(yè)知識。
題主沒有說明原因和理由,在實際項目中可能出現(xiàn)多種場景,不能一概而論。
1,前期預(yù)研項目,Demo演示功能,沒必要使用
如果原型驗證的重點是某一項技術(shù),沒時間開發(fā)那么完善的系統(tǒng),這時先不用Redis搭建緩存優(yōu)化性能什么的,是可以接受的。
2,小型單機項目,功能簡單,業(yè)務(wù)邏輯單一
功能簡單的小項目,用戶量少,或者對運行效率沒那么敏感,為了保持一個簡單的系統(tǒng)架構(gòu),方便運維管理,倒是不必要引入那么多的依賴服務(wù),也不用占用不必要的服務(wù)器資源。
3,公司內(nèi)部項目,早期開發(fā)階段,快速迭代,業(yè)務(wù)需求變化大
有那么一類軟件系統(tǒng),是給公司內(nèi)部自己人用的,各個部門老大就是拍腦袋定需求的核心用戶,帶來的問題就是需求改動大、開發(fā)返工甚至項目取消都有很大的可能性。尤其是在早期開發(fā)階段,還沒有沉淀下來一個相對明確的系統(tǒng)框架,這時的重點應(yīng)該放在業(yè)務(wù)需求上,不用過度設(shè)計技術(shù)架構(gòu)。
4,項目中已經(jīng)使用了其它類似的技術(shù)框架,比如Memcached, MongoDB,等等
Redis是一個高性能的key-value數(shù)據(jù)庫,常用于搭建緩存系統(tǒng),提高并發(fā)響應(yīng)速度。Redis使用非常普遍,簡單輕量,部署維護(hù)方便,是很多人使用的第一個NoSQL數(shù)據(jù)庫,很受歡迎。
類似的技術(shù)解決方案也可以使用其它框架,比如Memcached,MongoDB,不同技術(shù)背景的個人和團(tuán)隊有不同偏好,很正常。
搞Linux運維的,需要學(xué)習(xí)些什么語言?
Linux運維主要學(xué)習(xí)以下語言:
運維工作尤其是linux運維,其實最考驗?zāi)愕哪芰?,因為需要學(xué)習(xí)的東西實在太多,
你既要懂網(wǎng)絡(luò):思科華為設(shè)備的配置;
要懂性能調(diào)優(yōu):包括lamp或者lnmp的性能調(diào)優(yōu),也包括linux操作系統(tǒng)調(diào)優(yōu);
要懂?dāng)?shù)據(jù)庫mysql或者nosql(例如mongodb):
要懂編程語言:Shell是最基本的,還要學(xué)習(xí)perl,python,甚至ruby和C++等(因為一些軟件是這些語言編寫的),還得熟練掌握awk,sed,grep以及正則表達(dá)式;
要懂一些調(diào)試排錯的命令工具的使用,比如htop,dstat,strace,systemtap,iostat,sar等;
要有比較好的英語水平:因為很多軟件或者工具以及出現(xiàn)問題排錯的答案都不是國人所做,甚至還需要和原作者交流,在谷歌group里面留言討論
要有堅強的體魄和超時工作的心理準(zhǔn)備:升級維護(hù)都是在大家還在做夢時候。夜里2點網(wǎng)站掛了你也得起來,手機不停的接收各種報警短信...
要有背黑鍋的忍耐力:運維一直是公司爹不疼娘不愛的位置,別人做好了和你無關(guān),你做差了別人作不好就是你影響的。人力和財務(wù)是技術(shù)部門的服務(wù),運維就是各技術(shù)部門的服務(wù),大到線上操作,小到幫助公司其他使用linux桌面的同事,公司內(nèi)部機房,IDC維護(hù)(跑腿搬服務(wù)器)。
到此,以上就是小編對于mongodb數(shù)據(jù)還原的問題就介紹到這了,希望這3點解答對大家有用。
網(wǎng)站標(biāo)題:你們都是怎么確保系統(tǒng)不被突然的訪問流量壓垮的?(mongodb還原超時如何解決)
分享路徑:http://m.5511xx.com/article/dpipdch.html


咨詢
建站咨詢
