企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-05仓库管理
親歷的企業級微服務的完整構建過程-系列文章目錄
本人參與了這次的企業級微服務的完整構建,想要記錄下來以便以后復習,同時也想分享給小伙伴們,拋磚引玉,歡迎大家提出自己的意見和建議,大家一起探討一起成長。以下為該系列所有文章的鏈接:
搭建和使用Maven私有倉庫(Nexus)-系列文章目錄
說明:
- 以下部分模塊,絕大多數人,在日常工作中都是用不到的,所以我就沒有介紹,畢竟時間是最重要的成本,沒必要花大量時間在我們用不到的內容上。
- 下面的“1 通用”章節,系列文章中的每一篇內容都相同,介紹一些背景、約定和官網鏈接等,大家只要知道這些內容了,就不用每篇文章都去看了。
本文目錄
- 親歷的企業級微服務的完整構建過程-系列文章目錄
- 搭建和使用Maven私有倉庫(Nexus)-系列文章目錄
- 正文
- 1 通用
- 1.1 前言
- 1.2 約定
- 1.3 官方文檔
- 2 倉庫管理
- 2.1 倉庫類型
- 2.2 管理倉庫和倉庫組
- 2.3 Blob Stores
正文
1 通用
1.1 前言
在構建微服務之前,需要先做一些準備工作,比如Maven私有倉庫的管理。因為有些微服務模塊是作為公共組件被其他微服務引用的,這些公共的微服務,就要設置為依賴,并用Maven倉庫管理起來,將自定義的依賴上傳到Maven中央倉庫并不是一個明智的選擇。原因有3個:
綜上,我們最好是搭建自己的私有Maven倉庫,而當前最流行的就是 Sonatype Nexus Repository Manager,以下簡稱 Nexus。
1.2 約定
1.3 官方文檔
提供Nexus的官方文檔:https://help.sonatype.com/repomanager3/
官方文檔包含了系統要求、搭建方法,以及各種操作方法等,內容已經非常全面了。
2 倉庫管理
倉庫是提供給用戶的組件的容器。
倉庫的二進制部分存儲在 blob 存儲中。
2.1 倉庫類型
Proxy Repository
代理倉庫,是鏈接到遠程倉庫的倉庫。對組件的任何請求都會根據代理倉庫的本地內容進行驗證。如果沒有找到本地組件,則將請求轉發到遠程倉庫。然后檢索該組件并將其本地存儲在倉庫管理器中,該倉庫管理器充當緩存。然后從本地存儲滿足對同一組件的后續請求,因此消除了再次從遠程倉庫檢索組件的網絡帶寬和時間開銷。
默認情況下,倉庫管理器附帶以下配置的代理倉庫:
maven-central
此代理倉庫訪問 Central Repository,以前稱為 Maven Central。它是內置在 Apache Maven 中的默認組件倉庫,并受到 Gradle、SBT 或 Ant/Ivy 等其他構建工具的良好支持。
nuget.org-proxy
此代理倉庫訪問 NuGet Gallery。它是用于 .Net 開發的 nuget 包管理工具使用的默認組件倉庫。(因為我是用Java開發,暫時忽略該項)
Hosted Repository
托管倉庫,將組件存儲在倉庫管理器中,而倉庫管理器是這些組件的權威存儲位置。
默認情況下,倉庫管理器附帶以下配置的托管倉庫:
maven-releases
此托管倉庫使用maven2倉庫格式和發布版本策略。它旨在成為你的組織發布內部版本的倉庫。你還可以將此倉庫用于外部倉庫中不可用的第三方組件,因此無法通過配置的代理倉庫進行檢索。這些組件的示例可以是商業專有庫,例如你的組織可能引用的 Oracle JDBC 驅動程序。
maven-snapshots
此托管倉庫使用maven2倉庫格式和快照版本策略。它旨在成為你的組織發布內部開發版本(也稱為快照)的倉庫。
nuget-hosted
此托管倉庫是你的組織可以使用nuget倉庫格式在倉庫中發布內部版本的地方。你還可以將此倉庫用于外部倉庫中不可用的第三方組件,這些組件可能被代理以獲得對組件的訪問權限。(因為我是用Java開發,暫時忽略該項)
Repository Group
倉庫組,代表了 Nexus Repository Manager 的一項強大功能。它們允許你在單個倉庫中組合多個倉庫和其他倉庫組。這反過來意味著你的用戶可以依賴單個 URL 來滿足他們的配置需求,而管理員可以添加更多倉庫(以及組件)到倉庫組。
倉庫管理器附帶以下組:
maven-public
是maven2格式倉庫的倉庫組,它將中央倉庫的重要外部代理倉庫與托管倉庫 maven-releases 和 maven-snapshots結合在一起。這允許你將中央倉庫的組件以及你的內部組件公開在一個單一的、易于使用的倉庫和 URL 中。
nuget-group
該組將nuget格式的倉庫 nuget-hosted 和 nuget.org-proxy 組合到一個倉庫中,用于使用 NuGet 進行 .Net 開發。(因為我是用Java開發,暫時忽略該項)
2.2 管理倉庫和倉庫組
要訪問該模塊,用戶必須擁有 nx-all 或 nx-repository-admin 權限。
下圖是倉庫列表,列出了所有的倉庫和倉庫組:
列表中每一列的含義:
- Name - 倉庫或倉庫組的唯一名稱
- Type -倉庫的類型,其值為 proxy 、hosted 或 group
- Format - 用于存儲在倉庫中的倉庫格式,如 maven2、nuget 或 其他
- Status - 倉庫的狀態以及有關狀態的更多信息。正常運行的倉庫將顯示狀態為 Online
- URL -復制按鈕會提示一個對話框,其中包含公開倉庫的直接 URL 路徑
- Health Check -顯示來自先前運行的 Repository Health Check 的倉庫健康統計分析信息,或用于開始分析的按鈕
下圖是2個倉庫的詳情頁面:
其中:
-
Online:設置此倉庫是否可用于客戶端工具
-
Storage:每個倉庫都需要配置一個 blob store 來確定組件的存儲位置。下拉列表允許你從所有已配置的 blob store 中進行選擇。關于創建 blob store 的文檔可在Storage Guide 中找到。
Strict Content Type Validation 允許你激活驗證,來檢查發布到倉庫中的所有文件的 MIME 類型,以符合特定倉庫格式的允許類型。 -
Hosted:包括托管配置部分中的部署策略配置。它的設置控制托管倉庫如何允許或禁止組件部署。
該項只有在 Type 為 hosted 的 Repository 中才有。如果策略設置為 Read-only,則不允許部署。
如果此策略設置為 Disable redeploy,則客戶端只能部署一次特定組件,任何再次部署組件的嘗試都將導致錯誤。禁用重新部署是默認值,因為大多數客戶端工具假定組件是不可變的,并且不會檢查倉庫中已在本地檢索和緩存的已更改組件。
如果策略設置為 Allow redeploy,客戶端可以將組件部署到此倉庫并在后續部署中覆蓋相同的組件。
如果你使用復制,此策略會自動設置為僅通過復制部署。 這將阻止所有部署到托管倉庫,但內部復制機制除外。你不應手動將此策略設置為 Deploy by Replication Only。如果你禁用復制,Nexus Repository 會自動恢復你之前的部署策略。
-
HTTP:配置訪問遠程倉庫所需的詳細信息
包括:Authentication 和 HTTP request settings。
倉庫組和倉庫的配置類似,倉庫組多了一個 Group 的配置項,配置哪些倉庫需要成為 該倉庫組的成員。左側是所有可用的倉庫,右側是所有的配置過來的成員。大家一看就懂了。
2.3 Blob Stores
是組件及其資產的二進制部分的內部存儲機制。它們可以是本地文件系統或基于云(使用 Amazon S3(Pro 和 OSS)或 Microsoft Azure(僅限 Pro))。每個 blob store 可用于一個或多個倉庫和倉庫組。你可以在 存儲指南 中了解有關 blob 存儲以及 如何配置 它們以及 規劃存儲策略 的更多信息。
總結
以上是生活随笔為你收集整理的企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-05仓库管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小学数学计算机教案模板,小学数学教案模板
- 下一篇: latex 参考文献快速插入