亲历的企业级微服务的完整构建过程-系列文章目录

本人参与了这次的企业级微服务的完整构建,想要记录下来以便以后复习,同时也想分享给小伙伴们,抛砖引玉,欢迎大家提出自己的意见和建议,大家一起探讨一起成长。以下为该系列所有文章的链接:

  1. 搭建和使用Maven私有仓库(Nexus)(更新中。。。)
  2. API网关(待发布)
  3. 认证中心(待发布)
  4. Redis框架(待发布)
  5. RabbitMQ(待发布)
  6. MyBatis(待发布)
  7. Web模块(待发布)
  8. 低代码(待发布)
  9. Core
    1. JSON工具类(待发布)
    2. 日期工具类(待发布)
    3. String工具类(待发布)
    4. Number工具类(待发布)
    5. Spring操作工具类(待发布)
    6. API结构统一封装(待发布)
  10. 监控和告警(待发布)
  11. MongoDB(待发布)

搭建和使用Maven私有仓库(Nexus)-系列文章目录

说明:

  • 以下部分模块,绝大多数人,在日常工作中都是用不到的,所以我就没有介绍,毕竟时间是最重要的成本,没必要花大量时间在我们用不到的内容上。
  • 下面的“1 通用”章节,系列文章中的每一篇内容都相同,介绍一些背景、约定和官网链接等,大家只要知道这些内容了,就不用每篇文章都去看了。
  1. 安装步骤
  2. 登录和界面
  3. 备份和恢复
  4. 管理:讲述了Nexus的管理功能,包括用户管理、权限管理、任务管理等
    1. 管理菜单
    2. 仓库管理
    3. 格式(Formats)(暂时用不到,略)
    4. 分期(Staging)(暂时用不到,略)
    5. 标记(Tagging)(暂时用不到,略)
    6. Maven和Jenkins插件(暂时用不到,略)
    7. 任务(Tasks)
    8. 访问控制
      1. 领域(Realms)管理
      2. 权限(Privileges)管理
      3. 角色(Roles)管理
      4. 用户(Users)管理
      5. 默认角色(Default Role)管理
      6. 内容选择器(Content Selectors)管理
    9. 用户认证(暂时用不到,略)
    10. 能力(Capabilities)(暂时用不到,略)
    11. 节点(Nodes)
    12. 配置SSL
    13. HTTP和HTTPS请求和代理设置(暂时用不到,略)
    14. 电子邮件服务器配置
    15. 重试限制配置(暂时用不到,略)
    16. 审计
    17. 安装和更新许可证
    18. 支持功能
  5. 使用Nexus仓库:讲述了使用(而非管理) Nexus Repository 的方方面面的知识
    1. 仓库管理器概念:使用 Nexus 需要先理解一些概念,该节内容提供了必要的背景和知识

      1. 组件、仓库和仓库格式(暂时用不到,略)
      2. 一个示例 - Maven 仓库格式(暂时用不到,略)
      3. 管理仓库(暂时用不到,略)
      4. 软件供应链自动化(暂时用不到,略)
      5. 代理仓库概念(暂时用不到,略)
    2. 用户界面概述
    3. 搜索组件(暂时用不到,略)
    4. 浏览仓库和仓库组
    5. 管理当前登录用户的资料
    6. 上传组件
    7. 查看标签(仅可用于Pro版本,略)
  6. 集成(主要讲述了如何使用 APIs 和 集成外部工具)(暂时用不到,略)
  7. 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个:

  1. 最重要的是隐私和安全问题,我们不可能把企业内部开发的组件上传到公共网络,让所有人能够随便下载;
  2. 上传很麻烦,上传方法详见 https://blog.csdn.net/agonie201218/article/details/124800163;
  3. 可能不允许上外网,则无法上传;
  4. 可能会有网络延迟、上传缓慢的问题。
  5. 降低了中央仓库的负担。

综上,我们最好是搭建自己的私有Maven仓库,而当前最流行的就是 Sonatype Nexus Repository Manager,以下简称 Nexus

1.2 约定

  1. 我使用的版本是 OSS 3.40.1-01,整个系列的文章都是在该版本上展开介绍,你们可能使用的是 Pro 版,少数模块是我的 OSS 版上没有的。不过一般使用的话,OSS 版已经够用了
  2. 文中出现的 Repository ,中文称之为“仓库”
  3. 文中出现的变量 $install-dir,值为 /opt/sonatype/nexus
  4. 文中出现的变量 $data-dir,值为 /opt/sonatype/sonatype-work/nexus3 ,或 /nexus-data,两者都是在docker容器nexus中的路径,一个是软链接,一个是实际路径
  5. 文中出现的变量 ${jetty.etc},值为 /opt/sonatype/nexus/etc/jetty
  6. NXRM:Nexus Repository Manager,即 Nexus 仓库管理器
  7. RBAC:Role-Based Access Control,即 基于角色的访问控制

1.3 官方文档

提供Nexus的官方文档:https://help.sonatype.com/repomanager3/
官方文档包含了系统要求、搭建方法,以及各种操作方法等,内容已经非常全面了。

2 仓库管理

仓库是提供给用户的组件的容器。
仓库的二进制部分存储在 blob 存储中。

2.1 仓库类型

  1. Proxy Repository
    代理仓库,是链接到远程仓库的仓库。对组件的任何请求都会根据代理仓库的本地内容进行验证。如果没有找到本地组件,则将请求转发到远程仓库。然后检索该组件并将其本地存储在仓库管理器中,该仓库管理器充当缓存。然后从本地存储满足对同一组件的后续请求,因此消除了再次从远程仓库检索组件的网络带宽和时间开销。

    默认情况下,仓库管理器附带以下配置的代理仓库:

    maven-central
    此代理仓库访问 Central Repository,以前称为 Maven Central。它是内置在 Apache Maven 中的默认组件仓库,并受到 Gradle、SBT 或 Ant/Ivy 等其他构建工具的良好支持。

    nuget.org-proxy
    此代理仓库访问 NuGet Gallery。它是用于 .Net 开发的 nuget 包管理工具使用的默认组件仓库。(因为我是用Java开发,暂时忽略该项)

  2. Hosted Repository
    托管仓库,将组件存储在仓库管理器中,而仓库管理器是这些组件的权威存储位置。

    默认情况下,仓库管理器附带以下配置的托管仓库:

    1. maven-releases
      此托管仓库使用maven2仓库格式和发布版本策略。它旨在成为你的组织发布内部版本的仓库。你还可以将此仓库用于外部仓库中不可用的第三方组件,因此无法通过配置的代理仓库进行检索。这些组件的示例可以是商业专有库,例如你的组织可能引用的 Oracle JDBC 驱动程序。

    2. maven-snapshots
      此托管仓库使用maven2仓库格式和快照版本策略。它旨在成为你的组织发布内部开发版本(也称为快照)的仓库。

    3. nuget-hosted
      此托管仓库是你的组织可以使用nuget仓库格式在仓库中发布内部版本的地方。你还可以将此仓库用于外部仓库中不可用的第三方组件,这些组件可能被代理以获得对组件的访问权限。(因为我是用Java开发,暂时忽略该项)

  3. Repository Group
    仓库组,代表了 Nexus Repository Manager 的一项强大功能。它们允许你在单个仓库中组合多个仓库和其他仓库组。这反过来意味着你的用户可以依赖单个 URL 来满足他们的配置需求,而管理员可以添加更多仓库(以及组件)到仓库组。

    仓库管理器附带以下组:

    1. maven-public
      是maven2格式仓库的仓库组,它将中央仓库的重要外部代理仓库与托管仓库 maven-releases 和 maven-snapshots结合在一起。这允许你将中央仓库的组件以及你的内部组件公开在一个单一的、易于使用的仓库和 URL 中。

    2. nuget-group
      该组将nuget格式的仓库 nuget-hosted 和 nuget.org-proxy 组合到一个仓库中,用于使用 NuGet 进行 .Net 开发。(因为我是用Java开发,暂时忽略该项)

2.2 管理仓库和仓库组

要访问该模块,用户必须拥有 nx-allnx-repository-admin 权限。

  1. 仓库列表
    下图是仓库列表,列出了所有的仓库和仓库组:

    列表中每一列的含义:
  • Name - 仓库或仓库组的唯一名称
  • Type -仓库的类型,其值为 proxyhostedgroup
  • Format - 用于存储在仓库中的仓库格式,如 maven2、nuget 或 其他
  • Status - 仓库的状态以及有关状态的更多信息。正常运行的仓库将显示状态为 Online
  • URL -复制按钮会提示一个对话框,其中包含公开仓库的直接 URL 路径
  • Health Check -显示来自先前运行的 Repository Health Check 的仓库健康统计分析信息,或用于开始分析的按钮
  1. 仓库详情

下图是2个仓库的详情页面:

其中:

  • Online:设置此仓库是否可用于客户端工具

  • Storage:每个仓库都需要配置一个 blob store 来确定组件的存储位置。下拉列表允许你从所有已配置的 blob store 中进行选择。关于创建 blob store 的文档可在Storage Guide 中找到。
    Strict Content Type Validation 允许你激活验证,来检查发布到仓库中的所有文件的 MIME 类型,以符合特定仓库格式的允许类型。

  • Hosted:包括托管配置部分中的部署策略配置。它的设置控制托管仓库如何允许或禁止组件部署。
    该项只有在 Typehosted 的 Repository 中才有。

    如果策略设置为 Read-only,则不允许部署。

    如果此策略设置为 Disable redeploy,则客户端只能部署一次特定组件,任何再次部署组件的尝试都将导致错误。禁用重新部署是默认值,因为大多数客户端工具假定组件是不可变的,并且不会检查仓库中已在本地检索和缓存的已更改组件。

    如果策略设置为 Allow redeploy,客户端可以将组件部署到此仓库并在后续部署中覆盖相同的组件。

    如果你使用复制,此策略会自动设置为仅通过复制部署。 这将阻止所有部署到托管仓库,但内部复制机制除外。你不应手动将此策略设置为 Deploy by Replication Only。如果你禁用复制,Nexus Repository 会自动恢复你之前的部署策略。

  • HTTP:配置访问远程仓库所需的详细信息
    包括:AuthenticationHTTP request settings

  1. 仓库组详情

    仓库组和仓库的配置类似,仓库组多了一个 Group 的配置项,配置哪些仓库需要成为 该仓库组的成员。左侧是所有可用的仓库,右侧是所有的配置过来的成员。大家一看就懂了。

2.3 Blob Stores

是组件及其资产的二进制部分的内部存储机制。它们可以是本地文件系统或基于云(使用 Amazon S3(Pro 和 OSS)或 Microsoft Azure(仅限 Pro))。每个 blob store 可用于一个或多个仓库和仓库组。你可以在 存储指南 中了解有关 blob 存储以及 如何配置 它们以及 规划存储策略 的更多信息。

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

  1. 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-17审计

    亲历的企业级微服务的完整构建过程-系列文章目录 本人参与了这次的企业级微服务的完整构建,想要记录下来以便以后复习,同时也想分享给小伙伴们,抛砖引玉,欢迎大家提出自己的意见和建议,大家一起探讨一起成长. ...

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

    亲历的企业级微服务的完整构建过程-系列文章目录 本人参与了这次的企业级微服务的完整构建,想要记录下来以便以后复习,同时也想分享给小伙伴们,抛砖引玉,欢迎大家提出自己的意见和建议,大家一起探讨一起成长. ...

  3. 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-09权限(Privileges)

    亲历的企业级微服务的完整构建过程-系列文章目录 本人参与了这次的企业级微服务的完整构建,想要记录下来以便以后复习,同时也想分享给小伙伴们,抛砖引玉,欢迎大家提出自己的意见和建议,大家一起探讨一起成长. ...

  4. 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-29上传组件

    亲历的企业级微服务的完整构建过程-系列文章目录 本人参与了这次的企业级微服务的完整构建,想要记录下来以便以后复习,同时也想分享给小伙伴们,抛砖引玉,欢迎大家提出自己的意见和建议,大家一起探讨一起成长. ...

  5. 搭建Maven私有仓库

    内部的项目并且需要多团队协作模块化开发的时候,自然会想到搭建自己的maven私有仓库,本文主要介绍如何搭建maven私服和如何在项目中添加依赖. Maven 的远程仓库分为中央仓库和私服仓库.中央仓库 ...

  6. springcloud架构特点_打造企业级微服务平台架构,分布式应用场景管理

    微服务平台架构是一项在云中部署应用和服务的新技术.大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务. 微服务系统可以在"自己的程序"中运行,并通过"轻量 ...

  7. 《深入理解 Spring Cloud 与微服务构建》第十二章 服务注册和发现 Consul

    <深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发现 Consul 文章目录 <深入理解 Spring Cloud 与微服务构建>第十二章 服务注册和发 ...

  8. 《深入理解Spring Cloud与微服务构建》出版啦!

    作者简介 方志朋,毕业于武汉理工大学,CSDN博客专家,专注于微服务.大数据等领域,乐于分享,爱好开源,活跃于各大开源社区.著有<史上最简单的Spring Cloud教程>,累计访问量超过 ...

  9. 利用微服务构建现代应用(一)

    本文讲的是利用微服务构建现代应用(一),[编者的话]本文介绍了微服务如何消除传统的整体化软件架构存在的问题,微服务跟SOA的关系,微服务所利用的新技术如容器.编排框架等,以及使用微服务带来的好处. 本 ...

最新文章

  1. commons-collections使用介绍之Bag HashBag
  2. 「Python」一文读懂装饰器
  3. java webstart 自动升级_windows – 使用java web start实现自动更新桌面应用程序时的AWTPermission异常...
  4. Winform中实现简单的登录成功后跳转到主页面的逻辑
  5. vim设置显示行号,vim跳转到文件头,文件尾
  6. windows mysql.tar安装_MySQL的安装
  7. subline3插件html,Sublime Text3与html的插件
  8. 职高学计算机走单招是,职高学生不用愁了,还有机会上本科,走“单招”或是最佳途径!...
  9. 得到本机或者网络上共享打印机的状态和打印任务
  10. zabbix邮件报警功能的验证
  11. 人脸重建github源码总结
  12. 先码后看 Spring源码解析 侵立删
  13. realsense相机色彩图与深度图对齐
  14. 【青少年编程】【四级】计算三角形面积
  15. xml 入门 shema_02
  16. ios微信双开,iOS微信分身免越狱方法来了!
  17. 【开心一刻】又想让马儿跑,又不给马儿吃草!
  18. Debian10更改源
  19. 你都用 Python 来做什么 学Python能做什么
  20. Vercel+Railway部署Typecho动态博客(超详细图文教程-Vercel CLI办法)

热门文章

  1. 【教程】Spire.PDF教程:如何给PDF添加背景颜色和平铺背景图
  2. win10 22H2优化了大小核吗?
  3. python 根据uuid 获取mac地址
  4. 泛海微低功耗的电压检测器XC61C系列
  5. mac 新版android studio 找不到DDMS及monitor打开白屏或报错问题
  6. xcode8的一些变动得一些坑!
  7. 关键信息基础设施保护必须以等级保护制度为基础
  8. 基于gollum的wiki搭建
  9. 一文盘点主流JavaScript框架的优缺点
  10. win10系统上传服务器失败,win10添加到服务器失败