日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-05仓库管理

發布時間:2023/12/29 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-05仓库管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

親歷的企業級微服務的完整構建過程-系列文章目錄

本人參與了這次的企業級微服務的完整構建,想要記錄下來以便以后復習,同時也想分享給小伙伴們,拋磚引玉,歡迎大家提出自己的意見和建議,大家一起探討一起成長。以下為該系列所有文章的鏈接:

  • 搭建和使用Maven私有倉庫(Nexus)(更新中。。。)
  • API網關(待發布)
  • 認證中心(待發布)
  • Redis框架(待發布)
  • RabbitMQ(待發布)
  • MyBatis(待發布)
  • Web模塊(待發布)
  • 低代碼(待發布)
  • Core
  • JSON工具類(待發布)
  • 日期工具類(待發布)
  • String工具類(待發布)
  • Number工具類(待發布)
  • Spring操作工具類(待發布)
  • API結構統一封裝(待發布)
  • 監控和告警(待發布)
  • MongoDB(待發布)

  • 搭建和使用Maven私有倉庫(Nexus)-系列文章目錄

    說明:

    • 以下部分模塊,絕大多數人,在日常工作中都是用不到的,所以我就沒有介紹,畢竟時間是最重要的成本,沒必要花大量時間在我們用不到的內容上。
    • 下面的“1 通用”章節,系列文章中的每一篇內容都相同,介紹一些背景、約定和官網鏈接等,大家只要知道這些內容了,就不用每篇文章都去看了。
  • 安裝步驟
  • 登錄和界面
  • 備份和恢復
  • 管理:講述了Nexus的管理功能,包括用戶管理、權限管理、任務管理等
  • 管理菜單
  • 倉庫管理
  • 格式(Formats)(暫時用不到,略)
  • 分期(Staging)(暫時用不到,略)
  • 標記(Tagging)(暫時用不到,略)
  • Maven和Jenkins插件(暫時用不到,略)
  • 任務(Tasks)
  • 訪問控制
  • 領域(Realms)管理
  • 權限(Privileges)管理
  • 角色(Roles)管理
  • 用戶(Users)管理
  • 默認角色(Default Role)管理
  • 內容選擇器(Content Selectors)管理
  • 用戶認證(暫時用不到,略)
  • 能力(Capabilities)(暫時用不到,略)
  • 節點(Nodes)
  • 配置SSL
  • HTTP和HTTPS請求和代理設置(暫時用不到,略)
  • 電子郵件服務器配置
  • 重試限制配置(暫時用不到,略)
  • 審計
  • 安裝和更新許可證
  • 支持功能
  • 使用Nexus倉庫:講述了使用(而非管理) Nexus Repository 的方方面面的知識
  • 倉庫管理器概念:使用 Nexus 需要先理解一些概念,該節內容提供了必要的背景和知識
  • 組件、倉庫和倉庫格式(暫時用不到,略)
  • 一個示例 - Maven 倉庫格式(暫時用不到,略)
  • 管理倉庫(暫時用不到,略)
  • 軟件供應鏈自動化(暫時用不到,略)
  • 代理倉庫概念(暫時用不到,略)
  • 用戶界面概述
  • 搜索組件(暫時用不到,略)
  • 瀏覽倉庫和倉庫組
  • 管理當前登錄用戶的資料
  • 上傳組件
  • 查看標簽(僅可用于Pro版本,略)
  • 集成(主要講述了如何使用 APIs 和 集成外部工具)(暫時用不到,略)
  • Maven中配置和使用Nexus

  • 本文目錄

    • 親歷的企業級微服務的完整構建過程-系列文章目錄
    • 搭建和使用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個:

  • 最重要的是隱私和安全問題,我們不可能把企業內部開發的組件上傳到公共網絡,讓所有人能夠隨便下載;
  • 上傳很麻煩,上傳方法詳見 https://blog.csdn.net/agonie201218/article/details/124800163;
  • 可能不允許上外網,則無法上傳;
  • 可能會有網絡延遲、上傳緩慢的問題。
  • 降低了中央倉庫的負擔。
  • 綜上,我們最好是搭建自己的私有Maven倉庫,而當前最流行的就是 Sonatype Nexus Repository Manager,以下簡稱 Nexus。

    1.2 約定

  • 我使用的版本是 OSS 3.40.1-01,整個系列的文章都是在該版本上展開介紹,你們可能使用的是 Pro 版,少數模塊是我的 OSS 版上沒有的。不過一般使用的話,OSS 版已經夠用了
  • 文中出現的 Repository ,中文稱之為“倉庫”
  • 文中出現的變量 $install-dir,值為 /opt/sonatype/nexus
  • 文中出現的變量 $data-dir,值為 /opt/sonatype/sonatype-work/nexus3 ,或 /nexus-data,兩者都是在docker容器nexus中的路徑,一個是軟鏈接,一個是實際路徑
  • 文中出現的變量 ${jetty.etc},值為 /opt/sonatype/nexus/etc/jetty
  • NXRM:Nexus Repository Manager,即 Nexus 倉庫管理器
  • RBAC:Role-Based Access Control,即 基于角色的訪問控制
  • 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仓库管理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。