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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-03备份和恢复

發(fā)布時(shí)間:2023/12/29 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-03备份和恢复 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

親歷的企業(yè)級(jí)微服務(wù)的完整構(gòu)建過(guò)程-系列文章目錄

本人參與了這次的企業(yè)級(jí)微服務(wù)的完整構(gòu)建,想要記錄下來(lái)以便以后復(fù)習(xí),同時(shí)也想分享給小伙伴們,拋磚引玉,歡迎大家提出自己的意見(jiàn)和建議,大家一起探討一起成長(zhǎng)。以下為該系列所有文章的鏈接:

  • 搭建和使用Maven私有倉(cāng)庫(kù)(Nexus)(更新中。。。)
  • API網(wǎng)關(guān)(待發(fā)布)
  • 認(rèn)證中心(待發(fā)布)
  • Redis框架(待發(fā)布)
  • RabbitMQ(待發(fā)布)
  • MyBatis(待發(fā)布)
  • Web模塊(待發(fā)布)
  • 低代碼(待發(fā)布)
  • Core
  • JSON工具類(lèi)(待發(fā)布)
  • 日期工具類(lèi)(待發(fā)布)
  • String工具類(lèi)(待發(fā)布)
  • Number工具類(lèi)(待發(fā)布)
  • Spring操作工具類(lèi)(待發(fā)布)
  • API結(jié)構(gòu)統(tǒng)一封裝(待發(fā)布)
  • 監(jiān)控和告警(待發(fā)布)
  • MongoDB(待發(fā)布)

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

    說(shuō)明:

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

  • 本文目錄

    • 親歷的企業(yè)級(jí)微服務(wù)的完整構(gòu)建過(guò)程-系列文章目錄
    • 搭建和使用Maven私有倉(cāng)庫(kù)(Nexus)-系列文章目錄
    • 正文
      • 1 通用
        • 1.1 前言
        • 1.2 約定
        • 1.3 官方文檔
      • 2 備份和恢復(fù)
        • 2.1 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)備份
        • 2.2 所有數(shù)據(jù)備份
        • 2.3 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)


    正文

    1 通用

    1.1 前言

    在構(gòu)建微服務(wù)之前,需要先做一些準(zhǔn)備工作,比如Maven私有倉(cāng)庫(kù)的管理。因?yàn)橛行┪⒎?wù)模塊是作為公共組件被其他微服務(wù)引用的,這些公共的微服務(wù),就要設(shè)置為依賴,并用Maven倉(cāng)庫(kù)管理起來(lái),將自定義的依賴上傳到Maven中央倉(cāng)庫(kù)并不是一個(gè)明智的選擇。原因如下:

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

    1.2 約定

  • 我使用的版本是 OSS 3.40.1-01,整個(gè)系列的文章都是在該版本上展開(kāi)介紹,你們可能使用的是 Pro 版,少數(shù)模塊是我的 OSS 版上沒(méi)有的。不過(guò)一般使用的話,OSS 版已經(jīng)夠用了
  • 文中出現(xiàn)的 Repository ,中文稱(chēng)之為“倉(cāng)庫(kù)”
  • 文中出現(xiàn)的變量 $install-dir,值為 /opt/sonatype/nexus
  • 文中出現(xiàn)的變量 $data-dir,值為 /opt/sonatype/sonatype-work/nexus3 ,或 /nexus-data,兩者都是在docker容器nexus中的路徑,一個(gè)是軟鏈接,一個(gè)是實(shí)際路徑
  • 文中出現(xiàn)的變量 ${jetty.etc},值為 /opt/sonatype/nexus/etc/jetty
  • NXRM:Nexus Repository Manager,即 Nexus 倉(cāng)庫(kù)管理器
  • RBAC:Role-Based Access Control,即 基于角色的訪問(wèn)控制
  • 1.3 官方文檔

    提供Nexus的官方文檔:https://help.sonatype.com/repomanager3/
    官方文檔包含了系統(tǒng)要求、搭建方法,以及各種操作方法等,內(nèi)容已經(jīng)非常全面了。

    2 備份和恢復(fù)

    背景: Nexus有2種版本:OSS,免費(fèi)版;Pro,收費(fèi)版。因?yàn)镺SS版本只能使用OrientDB數(shù)據(jù)庫(kù),Pro版本才能使用其他數(shù)據(jù)庫(kù)(如H2, PostgreSQL),而我使用的是免費(fèi)的OSS版,所以這里就介紹下如何備份和恢復(fù) OrientDB。以后如果用到Pro版,再補(bǔ)上其他數(shù)據(jù)庫(kù)的備份恢復(fù)步驟。

    2.1 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)備份

  • 創(chuàng)建備份任務(wù):點(diǎn)擊圖中的“Create task”按鈕

  • 創(chuàng)建備份任務(wù):點(diǎn)擊“Admin - Export databases for backup”項(xiàng)

  • 創(chuàng)建備份任務(wù):點(diǎn)擊“Admin - Export databases for backup”項(xiàng),配置備份項(xiàng)目


    需要配置 任務(wù)名稱(chēng)、通知郵箱、通知時(shí)機(jī)、備份路徑、任務(wù)頻率等。其中,“Task frequency”(任務(wù)頻率),可以配置為基礎(chǔ)的“每日、每周”等,也可以使用高級(jí)的CRON表達(dá)式,上面2張截圖中分別使用了2種方式。

  • 創(chuàng)建備份任務(wù):配置完點(diǎn)擊“Save”按鈕,就可以在 Tasks列表中看到我們剛剛配置好的任務(wù)記錄了

    如下圖所示:
    點(diǎn)擊上圖中的“bak-data”記錄,進(jìn)入到詳情頁(yè)面,可以刪除、手動(dòng)運(yùn)行、手動(dòng)停止 任務(wù),也可以查看任務(wù)運(yùn)行匯總信息,還可以修改任務(wù)(點(diǎn)擊 ‘Settings’按鈕):

  • 運(yùn)行任務(wù):可以點(diǎn)擊上圖中的“Run”按鈕手動(dòng)運(yùn)行,也能等待定時(shí)任務(wù)自動(dòng)運(yùn)行
    備份任務(wù)運(yùn)行完成后可以在配置的備份路徑下找到備份文件,一共3個(gè):

    # 我這里是在宿主機(jī)的物理路徑下查看的 root@work:/var/lib/docker/volumes/nexus-data/_data/bak# ll 總用量 580 drwxr-xr-x 2 200 200 4096 7月 1 10:45 ./ drwxr-xr-x 16 200 200 4096 7月 1 10:46 ../ -rw-r--r-- 1 200 200 233985 7月 1 10:45 component-2022-07-01-02-45-00-3.40.1-01.bak -rw-r--r-- 1 200 200 211691 7月 1 10:45 config-2022-07-01-02-45-00-3.40.1-01.bak -rw-r--r-- 1 200 200 134769 7月 1 10:45 security-2022-07-01-02-45-00-3.40.1-01.bak
  • 注:
    6. 當(dāng)任務(wù)運(yùn)行時(shí),它會(huì)將備份數(shù)據(jù)導(dǎo)出到“Backup location”字段中指定的路徑。一次備份會(huì)生成3個(gè) .bak 文件:
    ·component - 構(gòu)成倉(cāng)庫(kù)管理器中組件的所有相關(guān)數(shù)據(jù)
    ·config - 常規(guī)管理配置,例如計(jì)劃任務(wù)和電子郵件服務(wù)器配置
    ·security - 所有用戶和訪問(wèn)權(quán)限管理內(nèi)容
    所有備份文件都基于任務(wù)開(kāi)始時(shí)間的時(shí)間戳格式顯示。

  • 配置了通知郵箱沒(méi)用,任務(wù)成功或失敗后,并沒(méi)有發(fā)送郵件給該郵箱,后臺(tái)日志中有一個(gè)提示消息:2022-07-01 02:49:24,866+0000 WARN [event-12-thread-38] *SYSTEM org.sonatype.nexus.internal.email.EmailManagerImpl - No email enabled but asked to send anyway.。誰(shuí)研究出解決辦法,可以告訴我。

    2022-07-05 15:51: 這個(gè)問(wèn)題我解決了,是因?yàn)槲覜](méi)有配置和啟用發(fā)送郵件服務(wù)器(注意:Enable復(fù)選框必須打勾,啟用它):

  • 2.2 所有數(shù)據(jù)備份

  • 數(shù)據(jù)庫(kù)數(shù)據(jù)備份(參考5.1節(jié))

  • 在運(yùn)行導(dǎo)出任務(wù)的同時(shí)備份安裝目錄和數(shù)據(jù)目錄中的自定義配置

  • 備份所有 blob 存儲(chǔ)
    直接備份存儲(chǔ) blob 的目錄,通常是 $data-dir/blobs。

  • 節(jié)點(diǎn)ID 備份
    每個(gè) Nexus Repository 實(shí)例都與一個(gè)不同的 ID 相關(guān)聯(lián)。我們必須備份此 ID,以便 Blob 存儲(chǔ)指標(biāo)(磁盤(pán)上 Blob 的大小和數(shù)量)和 Nexus Firewall 報(bào)告在還原時(shí)起作用。要備份以保留節(jié)點(diǎn) ID 的文件位于以下位置:$data-dir/keystores/node/?。

  • 將所有備份的配置和導(dǎo)出的數(shù)據(jù)存儲(chǔ)在一起

  • 注:對(duì)數(shù)據(jù)庫(kù)的寫(xiě)訪問(wèn)被暫時(shí)掛起,直到備份完成。建議在下班時(shí)間安排備份任務(wù)(比如寫(xiě)備份腳本,放到定時(shí)任務(wù)中運(yùn)行)。

    2.3 OrientDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)

  • 停止 Nexus
  • 進(jìn)入目錄 $data-dir/db,刪除以下3個(gè)目錄:
    • component/
    • config/
    • security/
  • 進(jìn)入存儲(chǔ)導(dǎo)出數(shù)據(jù)庫(kù)備份文件的目錄 $data-dir/bak
  • 將相應(yīng)的 .bak 文件復(fù)制到 $data-dir/restore-from-backup 進(jìn)行恢復(fù)(注意:對(duì)于版本 3.10.0 或更早版本,請(qǐng)使用 $data-dir/backup 作為恢復(fù)位置)
  • 還原與 DB 備份對(duì)應(yīng)的 Blob 存儲(chǔ)備份
  • 重新啟動(dòng) Nexus
  • 驗(yàn)證 Nexus 倉(cāng)庫(kù)是否正常運(yùn)行
  • 從目錄 $data-dir/restore-from-backup 中刪除恢復(fù)用到的 .bak 文件
  • 驗(yàn)證:我們可以通過(guò)查看之前從 $data-dir/nexus3/db 中刪除的數(shù)據(jù)庫(kù)目錄及其中的內(nèi)容是否完全恢復(fù),來(lái)驗(yàn)證恢復(fù)是否完成
  • 注意:

  • 當(dāng)組件數(shù)據(jù)庫(kù)恢復(fù)時(shí),包含組件的相應(yīng) blob 存儲(chǔ)也必須恢復(fù)。不這樣做會(huì)導(dǎo)致 blob存儲(chǔ)和數(shù)據(jù)庫(kù)之間出現(xiàn)同步問(wèn)題。

  • 如果 Blob 存儲(chǔ)和數(shù)據(jù)庫(kù)備份不是在完全相同的時(shí)刻進(jìn)行的,它們可能在還原后不同步。 要解決此問(wèn)題,請(qǐng)?jiān)?Adminitration 管理界面中的 System → Tasks 下安排并運(yùn)行任務(wù) Repair - Reconcile component database from blob store。

  • 總結(jié)

    以上是生活随笔為你收集整理的企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-03备份和恢复的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。