在做微服務(wù)的時(shí)候,因?yàn)橐贾枚鄠€(gè)節(jié)點(diǎn)西乖,每個(gè)節(jié)點(diǎn)都要處理文件的上傳和下載松靡。因?yàn)槎鄠€(gè)節(jié)點(diǎn)在不同的服務(wù)器上简僧,如果讓每個(gè)節(jié)點(diǎn)單獨(dú)去處理文件,那么文件就會存儲到當(dāng)前節(jié)點(diǎn)的服務(wù)器上雕欺。為了解決這個(gè)問題岛马,第一時(shí)間想到的是再做一個(gè)文件服務(wù)節(jié)點(diǎn),每個(gè)業(yè)務(wù)節(jié)點(diǎn)都去調(diào)用這個(gè)文件節(jié)點(diǎn)去處理屠列。這樣所有的文件數(shù)據(jù)都可以保存到文件服務(wù)的服務(wù)器上啦逆,可以解決多個(gè)節(jié)點(diǎn)文件互相取不到的問題。做了一段時(shí)間后笛洛,發(fā)現(xiàn)有更好的方案可以替代這種模式夏志,就是做一個(gè)文件夾映射,文件存儲問題得到了很好的解決苛让。方便實(shí)用沟蔑。下面說下具體怎么實(shí)現(xiàn)的。
使用了三臺服務(wù)器(linux? centos7+)
1:三臺服務(wù)器蝌诡,ip分別是192.168.0.172溉贿、192.168.0.176、192.168.0.179浦旱。其中172和176作為服務(wù)節(jié)點(diǎn)宇色,部署我們的業(yè)務(wù)代碼,179作為文件存儲服務(wù)器。這臺服務(wù)器的硬盤做了read1宣蠕。
2:在179這臺服務(wù)器上例隆,安裝nfs。
命令:yum install nfs-utils
啟動(dòng)nfs命令:service nfs start
啟動(dòng)rpcbind命令:service rpcbind start
3:創(chuàng)建一個(gè)共享文件夾nas
命令:mkdir nas
給nas文件夾付讀寫權(quán)限
命令:chmod 777 nas
4:配置共享
命令:vi /etc/exports? ? ? ? ? ? ? 在文件中寫入:/root/nas/ *(insecure,rw,async,no_root_squash)? ?
其中insecure比較關(guān)鍵抢蚀,如果不加這個(gè)值的時(shí)候镀层,有時(shí)候配置共享的時(shí)候會報(bào)錯(cuò),是因?yàn)橛昧舜笥?024的端口皿曲。
5:在172和176這兩臺服務(wù)器上唱逢,同樣配置安裝下nfs。啟動(dòng)nfs和rpcbind屋休。創(chuàng)建存儲文件夾mkdir data坞古。賦權(quán)chmod 777 data。
6:在172和176上把data文件夾跟179的nas文件夾做映射關(guān)系劫樟。?
命令:mount -t nfs 192.168.0.179:/root/nas /root/data
解除映射命令:umount -t nfs 192.168.0.179:/root/nas /root/data
解除時(shí)痪枫,有可能提示文件夾被占用,需要先把進(jìn)程殺掉? 使用命令:fuser -m -v /root/data
?命令fuser需要安裝:yum install -y psmisc
這樣配置好后叠艳,就可以把服務(wù)節(jié)點(diǎn)上的上傳和下載奶陈,直接配置到當(dāng)前服務(wù)器的data文件夾中。實(shí)現(xiàn)資源共享附较。硬盤本身還做了容災(zāi)處理吃粒。