主頁 > 軟體設計 > NFS(網路檔案系統)簡介及搭建

NFS(網路檔案系統)簡介及搭建

2021-01-28 14:34:36 軟體設計

NFS簡介及搭建

  • 網路檔案系統
    • 定義
    • 演化
    • 特點
    • 作業原理
    • 網路檔案系統架構
    • 網路檔案系統協議
    • 網路檔案系統中的創新
    • 網路檔案系統的替代物
  • 部署NFS
    • 實驗環境
      • 安裝nfs、rpcbind服務
      • 在node1主機創建test目錄并給權限777
      • 撰寫檔案/etc/exports
      • 讓nfs生效,并開啟nfs和rpcbind服務
      • 開啟防火墻
      • 切換到node2主機進行創建掛載點目錄并進行掛載
      • node1主機進行創建檔案,測驗一下是否同步

網路檔案系統


網路檔案系統,英文Network File System(NFS),是由SUN公司研制的UNIX表示層協議(presentation layer protocol),能使使用者訪問網路上別處的檔案就像在使用自己的計算機一樣,

定義

NFS是基于UDP/IP協議的應用,其實作主要是采用遠程程序呼叫RPC機制,RPC提供了一組與機器、作業系統以及低層傳送協議無關的存取遠程檔案的操作,RPC采用了XDR的支持,XDR是一種與機器無關的資料描述編碼的協議,他以獨立與任意機器體系結構的格式對網上傳送的資料進行編碼和解碼,支持在異構系統之間資料的傳送,

演化

網路檔案系統(NFS)是檔案系統之上的一個網路抽象,來允許遠程客戶端以與本地檔案系統類似的方式,來通過網路進行訪問,雖然 NFS 不是第一個此類系統,但是它已經發展并演變成 UNIX系統中最強大最廣泛使用的網路檔案系統,NFS 允許在多個用 戶之間共享公共檔案系統,并提供資料集中的優勢,來最小化所需的存盤空間,
網路檔案系統(NFS)從1984 年問世以來持續演變,并已成為分布式檔案系統的基礎,當前,NFS(通過 pNFS 擴展)通過網路對分布的檔案提供可擴展的訪問,
第一個網路檔案系統稱為 File Access Listener — 由 Digital Equipment Corporation(DEC)在 1976 年開發,Data Access Protocol(DAP)的實施,這是 DECnet 協議集的一部分,比如 TCP/IP,DEC 為其網路協議發布了協議規范,包括DAP,
NFS 是第一個現代網路檔案系統(構建于 IP 協議之上),在 20 世紀 80 年代,它首先作為實驗檔案系統,由 Sun Microsystems 在內部完成開發,NFS 協議已歸檔為 Request for Comments(RFC)標準,并演化為大家熟知的 NFSv2,作為一個標準,由于 NFS 與其他客戶端和服務器的互操作能力而發展快速,
標準持續地演化為 NFSv3,在 RFC 1813 中有定義,這一新的協議比以前的版本具有更好的可擴展性,支持大檔案(超過 2GB),異步寫入,以及將 TCP 作為傳輸協議,為檔案系統在更廣泛的網路中使用鋪平了道路,在 2000 年,RFC 3010(由 RFC 3530 修訂)將 NFS 帶入企業設定,Sun 引入了具有較高安全性,帶有狀態協議的 NFSv4(NFS 之前的版本都是無狀態的),今天,NFS 是版本 4.1(由 RFC 5661 定義),它增加了對跨越分布式服務器的并行訪問的支持(稱為 pNFS extension),
令人驚訝的是,NFS 已經歷了幾乎 30 年的開發,它代表了一個非常穩定的(及可移植)網路檔案系統,它可擴展、高性能、并達到企業級質量,由于網路速度的增加和延遲的降低,NFS 一直是通過網路提供檔案系統服務具有吸引力的選擇,甚至在本地網路設定中,虛擬化驅動存盤進入網路,來支持更多的移動虛擬機,NFS 甚至支持最新的計算模型,來優化虛擬的基礎設施,

特點

  1. 提供透明檔案訪問以及檔案傳輸;
  2. 容易擴充新的資源或軟體,不需要改變現有的作業環境;
  3. 高性能,可靈活配置,

作業原理

NFS(Network File System,網路檔案系統)是當前主流異構平臺共享檔案系統之一,主要應用在UNIX環境下,最早是由Sun Microsystems開發,現在能夠支持在不同型別的系統之間通過網路進行檔案共享,廣泛應用在FreeBSD、SCO、Solaris等異構作業系統平臺,允許一個系統在網路上與他人共享目錄和檔案,通過使用NFS,用戶和程式可以像訪問本地檔案一樣訪問遠端系統上的檔案,使得每個計算機的節點能夠像使用本地資源一樣方便地使用網上資源,換言之,NFS可用于不同型別計算機、作業系統、網路架構和傳輸協議運行環境中的網路檔案遠程訪問和共享,
NFS的作業原理是使用客戶端/服務器架構,由一個客戶端程式和服務器程式組成,服務器程式向其他計算機提供對檔案系統的訪問,其程序稱為輸出,NFS客戶端程式對共享檔案系統進行訪問時,把它們從NFS服務器中“輸送”出來,檔案通常以塊為單位進行傳輸,其大小是8KB(雖然它可能會將操作分成更小尺寸的分片),NFS傳輸協議用于服務器和客戶機之間檔案訪問和共享的通信,從而使客戶機遠程地訪問保存在存盤設備上的資料,

網路檔案系統架構

NFS 允許計算的客戶 — 服務器模型,服務器實施共享檔案系統,以及客戶端所連接的存盤,客戶端實施用戶介面來共享檔案系統,并加載到本地檔案空間當中,
在 Linux中,虛擬檔案系統交換(VFS)提供在一個主機上支持多個并發檔案系統的方法(比如 CD-ROM 上的 International Organization for Standardization [ISO] 9660,以及本地硬碟上的 ext3fs),VFS 確定需求傾向于哪個存盤,然后使用哪些檔案系統來滿足需求,由于這一原因,NFS 是與其他檔案系統類似的可插拔檔案系統,對于 NFS 來說,唯一的區別是輸入/輸出(I/O)需求無法在本地滿足,而是需要跨越網路來完成,
一旦發現了為 NFS 指定的需求,VFS 會將其傳遞給內核中的 NFS 實體,NFS 解釋 I/O 請求并將其翻譯為 NFS 程式(OPEN、ACCESS、CREATE、READ、CLOSE、REMOVE 等等),這些程式,歸檔在特定 NFS RFC 中,指定了 NFS 協議中的行為,一旦從 I/O 請求中選擇了程式,它會在遠程程式呼叫(RPC)層中執行,正如其名稱所暗示的,RPC 提供了在系統間執行程式呼叫的方法,它將封送 NFS 請求,并伴有引數,管理將它們發送到合適的遠程對等級,然后管理并追蹤回應,提供給合適的請求者,
進一步來說,RPC 包括重要的互操作層,稱為外部資料表示(XDR),它確保當涉及到資料型別時,所有 NFS 參與者使用相同的語言,當給定架構執行請求時,資料型別表示可能不同于滿足需求的目標主機上的資料型別,XDR 負責將型別轉換為公共表示(XDR),便于所有架構能夠與共享檔案系統互操作,XDR 指定型別位元組格式(比如 float)和型別的位元組排序(比如修復可變長陣列),雖然 XDR 以其在 NFS 中的使用而聞名,當您在公共應用程式設定中處理多個架構時,它是一個有用的規范,
一旦 XDR 將資料轉換為公共表示,需求就通過網路傳輸給出傳輸層協議,早期 NFS 采用 Universal Datagram Protocol(UDP),但是,今天 TCP 因為其優越的可靠性而更加通用,
在服務器端,NFS 以相似的風格運行,需求到達網路協議堆疊,通過 RPC/XDR(將資料型別轉換為服務器架構) 然后到達 NFS 服務器,NFS 服務器負責滿足需求,需求向上提交給 NFS 守護行程,它為需求標示出目標檔案系統樹,并且 VFS 再次用于在本地存盤中獲取檔案系統,整個流程在圖 3 中有展示,注意,服務器中的本地檔案系統是典型的 Linux 檔案系統(比如 ext4fs),因此,NFS 不是傳統意義上的檔案系統,而是訪問遠程檔案系統的協議,
對于高延遲網路,NFSv4 實作稱為 compound procedure 的程式,這一程式從本質上允許在單個請求中嵌入多個 RPC 呼叫,來最小化通過網路請求的 transfer tax,它還為回應實作回呼模式,

網路檔案系統協議

從客戶端的角度來說,NFS 中的第一個操作稱為 mount,Mount 代表將遠程檔案系統加載到本地檔案系統空間中,該流程以對 mount(Linux 系統呼叫)的呼叫開始,它通過 VFS 路由到 NFS 組件,確認了加載埠號之后(通過 get_port 請求對遠程服務器 RPC 呼叫),客戶端執行 RPC mount 請求,這一請求發生在客戶端和負責 mount 協議(rpc.mountd)的特定守護行程之間,這一守護行程基于服務器當前匯出檔案系統來檢查客戶端請求;如果所請求的檔案系統存在,并且客戶端已經訪問了,一個 RPC mount 回應為檔案系統建立了檔案句柄,客戶端這邊存盤具有本地加載點的遠程加載資訊,并建立執行 I/O 請求的能力,這一協議表示一個潛在的安全問題;因此,NFSv4 用內部 RPC 呼叫替換這一輔助 mount 協議,來管理加載點,
要讀取一個檔案,檔案必須首先被打開,在 RPC 內沒有 OPEN 程式;反之,客戶端僅檢查目錄和檔案是否存在于所加載的檔案系統中,客戶端以對目錄的 GETATTR RPC 請求開始,其結果是一個具有目錄屬性或者目錄不存在指示的回應,接下來,客戶端發出 LOOKUP RPC 請求來查看所請求的檔案是否存在,如果是,會為所請求的檔案發出 GETATTR RPC 請求,為檔案回傳屬性,基于以上成功的 GETATTRs 和 LOOKUPs,客戶端創建檔案句柄,為用戶的未來需求而提供的,
利用在遠程檔案系統中指定的檔案,客戶端能夠觸發 READ RPC 請求,READ 包含檔案句柄、狀態、偏移、和讀取計數,客戶端采用狀態來確定操作是否可執行(那就是,檔案是否被鎖定),偏移指出是否開始讀取,而計數指出所讀取位元組的數量,服務器可能回傳或不回傳所請求位元組的數量,但是會指出在 READ RPC 回復中所回傳(隨著資料)位元組的數量,

網路檔案系統中的創新

NFS 的兩個最新版本(4 和 4.1)對于 NFS 來說是最有趣和最重要的,讓我們來看一下 NFS 創新最重要的一些方面,
在 NFSv4 之前,存在一定數量的輔助協議用于加載、鎖定、和檔案管理中的其他元素,NFSv4 將這一流程簡化為一個協議,并將對 UDP 協議的支持作為傳輸協議移除,NFSv4 還集成支持 UNⅨ 和基于 Windows? 的檔案訪問語意,將本地集成 NFS 擴展到其他作業系統中,
NFSv4.1 介紹針對更高擴展性和更高性能的并行 NFS(pNFS)的概念,要支持更高的可擴展性,NFSv4.1 具有腳本,與集群化檔案系統風格類似的拆分資料/元資料架構, pNFS 將生態系統拆分為三個部分:客戶端、服務器和存盤,您可看到存在兩個路徑:一個用于資料,另一個用于控制,pNFS 將資料布局與資料本身拆分,允許雙路徑架構,當客戶想要訪問檔案時,服務器以布局回應,布局描述了檔案到存盤設備的映射,當客戶端具有布局時,它能夠直接訪問存盤,而不必通過服務器(這實作了更大的靈活性和更優的性能),當客戶端完成檔案操作時,它會提交資料(變更)和布局,如果需要,服務器能夠請求從客戶端回傳布局,
pNFS 實施多個新協議操作來支持這一行為,LayoutGet 和 LayoutReturn 分別從服務器獲取發布和布局,而 LayoutCommit 將來自客戶端的資料提交到存盤庫,以便于其他用戶使用,服務器采用 LayoutRecall 從客戶端回呼布局,布局跨多個存盤設備展開,來支持并行訪問和更高的性能,
資料和元資料都存盤在存盤區域中,客戶端可能執行直接 I/O ,給出布局的回執,而 NFSv4.1 服務器處理元資料管理和存盤,雖然這一行為不一定是新的,pNFS 增加功能來支持對存盤的多訪問方法,當前,pNFS 支持采用基于塊的協議(光纖通道),基于物件的協議,和 NFS 本身(甚至以非 pNFS 形式),
通過 2010 年 9 月發布的對 NFSv2 的請求,繼續開展 NFS 作業,其中以新的提升定位了虛擬環境中存盤的變化,例如,資料復制與在虛擬機環境中非常類似(很多作業系統讀取/寫入和快取相同的資料),由于這一原因,存盤系統從整體上理解復制發生在哪里是很可取的,這將在客戶端保留快取空間,并在存盤端保存容量,NFSv4.2 建議用共享塊來處理這一問題,因為存盤系統已經開始在后端集成處理功能,所以服務器端復制被引入,當服務器可以高效地在存盤后端自己解決資料復制時,就能減輕內部存盤網路的負荷,其他創新出現了,包括針對 flash 存盤的子檔案快取,以及針對 I/O 的客戶端提示 (潛在地采用 mapadvise 作為路徑),

網路檔案系統的替代物

雖然 NFS 是在 UNIX和 Linux 系統中最流行的網路檔案系統,但它當然不是唯一的選擇,在 Windows系統中,Server Message Block [SMB](也稱為 CIFS)是最廣泛使用的選項(如同 Linux 支持 SMB一樣,Windows 也支持 NFS),
最新的分布式檔案系統之一,在 Linux 中也支持,是 Ceph,Ceph 設計為容錯的分布式檔案系統,它具有 UNⅨ 兼容的 Portable Operating System Interface(POSⅨ),您可在 參考資料 中深入了解 Ceph,
其他例子包括 OpenAFS,是 Andrew 分布式檔案系統的開源版(來自 Carnegie Mellon 和 IBM),GlusterFS,關注于可擴展存盤的通用分布式檔案系統,以及 Lustre,關注于集群計算的大規模并行分布式檔案系統,所有都是用于分布式存盤的開源軟體解決方案,

部署NFS

實驗環境

IP服務
192.168.1.10nfs、rpcbind
192.168.1.20nfs、rpcbind

安裝nfs、rpcbind服務

192.168.1.10作為主服務器安裝

yum -y install nfs-utils rpcbind

保證互相能ping通

[root@node1 ~]# ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=0.531 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.560 ms
------------------------------------------------------------
[root@node2 ~]# ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.435 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.521 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=64 time=0.315 ms

在node1主機創建test目錄并給權限777

[root@node1 ~]# mkdir /test
[root@node1 ~]# chmod 777 /test

撰寫檔案/etc/exports

[root@node1 ~]# vi /etc/exports
/test 192.168.1.20(rw,sync,no_root_squash)

#還可以設定其他權限ro權限為只讀,rw為可讀可寫

讓nfs生效,并開啟nfs和rpcbind服務

[root@node1 ~]# exportfs -rv
exporting 192.168.1.20:/test
exporting 192.168.1.20:/test to kernel
exportfs: 192.168.1.20:/test: Function not implemented
[root@node1 ~]# systemctl start nfs
[root@node1 ~]# systemctl start rpcbind

開啟防火墻

[root@node1 ~]# firewall-cmd --add-service=nfs --permanent
success
[root@node1 ~]# firewall-cmd --add-service=mountd --permanent
success
[root@node1 ~]# firewall-cmd --add-service=rpc-bind --permanent
success
[root@node1 ~]# firewall-cmd --reload
success

切換到node2主機進行創建掛載點目錄并進行掛載

[root@node2 ~]# mkdir /hello
[root@node2 ~]# mount -t nfs 192.168.1.10:/test /hello

node1主機進行創建檔案,測驗一下是否同步

[root@node1 ~]# cd /test
[root@node1 test]# echo 123 > test.log
[root@node1 test]# ls
test.log
----------------------------------------------
[root@node2 ~]# cd /hello
[root@node2 hello]# ls
test.log
[root@node2 hello]# cat test.log 
123

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/253595.html

標籤:其他

上一篇:大資料基礎——Hadoop大資料平臺搭建

下一篇:“寒武紀大爆發”之后的云原生,2021年走向何處?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more