setnx分布式鎖原理 本人本科大二,隨手可以寫java網(wǎng)課上的倉(cāng)儲(chǔ)系統(tǒng)(無(wú)法聯(lián)網(wǎng),圖形化界面,sql),在業(yè)內(nèi)算什么水平呢?
本人本科大二,隨手可以寫java網(wǎng)課上的倉(cāng)儲(chǔ)系統(tǒng)(無(wú)法聯(lián)網(wǎng),圖形化界面,sql),在業(yè)內(nèi)算什么水平呢?我做軟件已經(jīng)20多年了。編程不僅是關(guān)于使用什么語(yǔ)言,而且是關(guān)于思考。編程語(yǔ)言只是一種工具。如果你熟
本人本科大二,隨手可以寫java網(wǎng)課上的倉(cāng)儲(chǔ)系統(tǒng)(無(wú)法聯(lián)網(wǎng),圖形化界面,sql),在業(yè)內(nèi)算什么水平呢?
我做軟件已經(jīng)20多年了。編程不僅是關(guān)于使用什么語(yǔ)言,而且是關(guān)于思考。編程語(yǔ)言只是一種工具。如果你熟悉一個(gè)工具,那就沒(méi)什么值得驕傲的了,除非你想把編程和詩(shī)人比較一下。一個(gè)軟件要實(shí)現(xiàn)哪些功能,這些功能用戶如何使用才能酷、易用、穩(wěn)定如新是最重要的。否則,這是一個(gè)懸而未決的問(wèn)題。在這個(gè)領(lǐng)域沒(méi)有太多的前途
首先,我們需要知道在非分布式環(huán)境中使用鎖可以解決什么問(wèn)題?
多線程環(huán)境,共享資源線程安全問(wèn)題!此時(shí),共享資源通常在一臺(tái)機(jī)器的多線程中競(jìng)爭(zhēng)。從JAVA內(nèi)存模型的角度來(lái)看,我們可以通過(guò)鎖定對(duì)象、方法和代碼塊來(lái)避免共享資源的競(jìng)爭(zhēng)
!1,生成全局ID;
2,修改全局配置文件;
3,分布式服務(wù)中的seckill;
4,分布式環(huán)境中的重復(fù)提交;
1,使用數(shù)據(jù)庫(kù)的唯一主鍵實(shí)現(xiàn)鎖定
!2、使用redis指令:通常使用setnx方法,incr方法實(shí)現(xiàn)
3、使用zookeeper:使用API生成臨時(shí)節(jié)點(diǎn)實(shí)現(xiàn)鎖定
什么時(shí)候需要分布式鎖?
分布式優(yōu)勢(shì):1。增加系統(tǒng)容量。我們的業(yè)務(wù)量在不斷增長(zhǎng),為了能夠應(yīng)對(duì)不斷增長(zhǎng)的業(yè)務(wù)量,一臺(tái)機(jī)器的性能已經(jīng)無(wú)法滿足,我們需要多臺(tái)機(jī)器來(lái)應(yīng)對(duì)大規(guī)模的應(yīng)用場(chǎng)景。因此,我們需要對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行縱向或橫向拆分,使其成為分布式體系結(jié)構(gòu)。
2. 增強(qiáng)系統(tǒng)可用性。我們的業(yè)務(wù)變得越來(lái)越關(guān)鍵,我們需要提高整個(gè)系統(tǒng)架構(gòu)的可用性,這意味著架構(gòu)中不可能存在單點(diǎn)故障。這樣,整個(gè)系統(tǒng)就不會(huì)因?yàn)橐慌_(tái)機(jī)器的故障而不可用。因此,我們需要采用分布式體系結(jié)構(gòu)來(lái)冗余系統(tǒng),以消除單點(diǎn)故障,從而提高系統(tǒng)的可用性。
3. 由于模塊化,系統(tǒng)模塊的重用程度更高
4。由于軟件服務(wù)模塊是分塊的,所以并行開(kāi)發(fā)和發(fā)布速度更快
5。系統(tǒng)具有較高的可擴(kuò)展性
6。團(tuán)隊(duì)協(xié)作過(guò)程也會(huì)得到改進(jìn)
雖然分布式系統(tǒng)有一些優(yōu)勢(shì),但也存在一些問(wèn)題
2。架構(gòu)設(shè)計(jì)變得更加復(fù)雜(尤其是分布式事務(wù))
3。系統(tǒng)更靈活部署單個(gè)服務(wù)會(huì)更快,但是如果一個(gè)部署需要多個(gè)服務(wù),部署會(huì)變得更復(fù)雜
4。系統(tǒng)的吞吐量會(huì)變大,但響應(yīng)時(shí)間會(huì)變長(zhǎng)
5。由于更多的服務(wù),操作和維護(hù)的復(fù)雜性將變得非常復(fù)雜
6。架構(gòu)的復(fù)雜性將導(dǎo)致更大的學(xué)習(xí)曲線
7。測(cè)試和錯(cuò)誤檢查的復(fù)雜性將增加
8。分布式系統(tǒng)中的服務(wù)維護(hù)和運(yùn)維管理技術(shù)種類繁多,使得分布式系統(tǒng)中的服務(wù)調(diào)度變得困難和復(fù)雜