分布式鎖是啥?
專業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、成都網(wǎng)站制作、商城開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。單機(jī)鎖的概念:我們正常跑的單機(jī)項(xiàng)目(也就是在tomcat下跑一個項(xiàng)目不配置集群)想要在高并發(fā)的時候加鎖很容易就可以搞定,java提供了很多的機(jī)制例如:synchronized、volatile、ReentrantLock等鎖的機(jī)制。
為啥需要分布式鎖:當(dāng)我們的項(xiàng)目比較龐大的時候,單機(jī)版的項(xiàng)目已經(jīng)不能滿足吞吐量的需求了,需要對項(xiàng)目做負(fù)載均衡,有可能還需要對項(xiàng)目進(jìn)行解耦拆分成不同的服務(wù),那么肯定是做成分布式的項(xiàng)目,分布式的項(xiàng)目因?yàn)槭遣煌某绦蚩刂疲允褂胘ava提供的鎖并不能完全保證并發(fā)需求,需要借助第三方的框架來實(shí)現(xiàn)對并發(fā)的阻塞控制,來滿足實(shí)際業(yè)務(wù)的需要。
一、使用分布式鎖要滿足的幾個條件:
1.系統(tǒng)是一個分布式系統(tǒng)(關(guān)鍵是分布式,單機(jī)的可以使用ReentrantLock或者synchronized代碼塊來實(shí)現(xiàn))
2.共享資源(各個系統(tǒng)訪問同一個資源,資源的載體可能是傳統(tǒng)關(guān)系型數(shù)據(jù)庫或者NoSQL)
3.同步訪問(即有很多個進(jìn)程同事訪問同一個共享資源。沒有同步訪問,誰管你資源競爭不競爭)
二、應(yīng)用的場景例子
管理后臺的部署架構(gòu)(多臺tomcat服務(wù)器+redis【多臺tomcat服務(wù)器訪問一臺redis】+mysql【多臺tomcat服務(wù)器訪問一臺服務(wù)器上的mysql】)就滿足使用分布式鎖的條件。多臺服務(wù)器要訪問redis全局緩存的資源,如果不使用分布式鎖就會出現(xiàn)問題。 看如下偽代碼:
long N=0L; //N從redis獲取值 if(N<5){ N++; //N寫回redis }
新聞名稱:java基于jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼-創(chuàng)新互聯(lián)
本文地址:http://jinyejixie.com/article42/dpseec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、定制開發(fā)、定制網(wǎng)站、移動網(wǎng)站建設(shè)、網(wǎng)站改版、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容