惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 叶小钗
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Blog — PlanetScale
Blog — PlanetScale
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks

二丫讲梵

学习周刊-总第258期-2026年第15周 学习周刊-总第257期-2026年第14周 学习周刊-总第256期-2026年第13周 学习周刊-总第255期-2026年第12周 学习周刊-总第254期-2026年第11周 学习周刊-总第253期-2026年第10周 临时插播一条羊毛,免费领取450元大模型API代金券 学习周刊-总第252期-2026年第09周 学习周刊-总第251期-2026年第08周 学习周刊-总第250期-2026年第07周 学习周刊-总第249期-2026年第06周 诚邀评论,聊聊你所知欲知的我 学习周刊-总第248期-2026年第05周 我的QQ动态之2015年 我的QQ动态之2014年 我的QQ动态之2013年 我的QQ动态之2012年 我的QQ动态-2010-2011年 我的QQ动态-创栏小叙 学习周刊-总第247期-2026年第04周 学习周刊-总第246期-2026年第03周 学习周刊-总第245期-2026年第02周 学习周刊-总第244期-2026年第01周 学习周刊-总第243期-2025年第52周 学习周刊-总第242期-2025年第51周 开源项目ZenOps:带你领略禅意运维 学习周刊-总第241期-2025年第50周 用京东金融,享负债人生 学习周刊-总第240期-2025年第49周 学习周刊-总第239期-2025年第48周
Nexus社区版权益阉割--一文告诉你有哪些版本可以选择
二丫讲梵 · 2026-01-18 · via 二丫讲梵

# 前言

最近折腾 Nexus,发现默认部署的最新版本首页有组件数量限制的展示,之前一直没有留意,经过一番了解之后,发现 Nexus 社区版的权益,也在进一步收紧,如果公司打算部署一个 Nexus,做好版本选择就非常关键。

# 版本之辨

Nexus 的组件限制,大致有如下几个版本节点:

  • 官方在 3.66.0 版本中增加了组件和请求数等相关监测指标。详见发版日志 (opens new window)
  • 一直到 3.76.1 版本,监测功能正常工作,当组件达到 10w 个会有建议提醒,但不会限制使用。
  • 3.77.0 版本开始,组件数 10w,日请求 20w 规则正式生效,当某个指标达到上限之后,会进入 30 天宽限期,宽限期内读写正常,如果指标降低到上限以内,到期后正常使用,否则将会无法写入。详见发版日志 (opens new window)
  • 3.87.0 版本开始,组件数上限降为 4w,日请求数降为 10w详见发版日志 (opens new window) 3.87.0 进一步降低限制之后,开源社区即有人提出担忧:883 (opens new window)

# 验证限制

考虑到有一些版本是统计而不限制,有一些版本是统计且限制,这里用脚本针对几个版本做一下验证测试。

快速部署:

docker run -itd -p 9000:8081 docker.cnb.cool/znb/images/nexus3:3.76.1
docker run -itd -p 9001:8081 docker.cnb.cool/znb/images/nexus3:3.86.3
docker run -itd -p 9002:8081 docker.cnb.cool/znb/images/nexus3

1
2
3

首先创建一个 raw 类型的仓库,接着通过如下 go 脚本,并发上传随机文件,然后静待一阵儿时间,到达统计周期,统计信息生效。

package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
	"sync"
	"time"
)

const (
	NexusURL   = "http://localhost:9000/repository/raw/"
	Username   = "admin"
	Password   = "admin"
	TotalFiles = 200004 // 目标上传总数
	// TotalFiles = 2  // 目标上传总数
	MaxWorkers = 200 // 并发数,根据机器性能调整
)

func main() {
	start := time.Now()
	var wg sync.WaitGroup
	jobs := make(chan int, TotalFiles)

	// 启动 Worker 池
	for w := 1; w <= MaxWorkers; w++ {
		wg.Add(1)
		go worker(w, jobs, &wg)
	}

	// 分发任务
	for i := 1; i <= TotalFiles; i++ {
		jobs <- i
	}
	close(jobs)

	wg.Wait()
	fmt.Printf("\n任务完成!总耗时: %v\n", time.Since(start))
}

func worker(id int, jobs <-chan int, wg *sync.WaitGroup) {
	defer wg.Done()
	client := &http.Client{Timeout: 30 * time.Second}

	for j := range jobs {
		fileName := fmt.Sprintf("test-file-%d.txt", j)
		uploadURL := NexusURL + fileName

		// 创建一个空的 Buffer 作为文件内容
		data := bytes.NewReader([]byte(""))

		req, err := http.NewRequest("PUT", uploadURL, data)
		if err != nil {
			fmt.Printf("Worker %d: 创建请求失败 %s\n", id, fileName)
			continue
		}

		req.SetBasicAuth(Username, Password)

		resp, err := client.Do(req)
		if err != nil {
			fmt.Printf("Worker %d: 上传失败 %s, 错误: %v\n", id, fileName, err)
			continue
		}

		// 必须关闭 Body 以复用连接
		io.Copy(io.Discard, resp.Body)
		resp.Body.Close()

		if resp.StatusCode >= 200 && resp.StatusCode < 300 {
			if j%100 == 0 {
				fmt.Printf("\r进度: 已上传 %d/%d", j, TotalFiles)
			}
		} else {
			fmt.Printf("\nWorker %d: 触发限制或错误! 文件: %s, 状态码: %d\n", id, fileName, resp.StatusCode)
		}
	}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

实测结果如下:

3.76.1

能够看到统计建议是不要超过 10w,实际写入 20w,没有任何影响,也没有强制升级提示。

3.86.3

提示:30 Days RemainingThis instance of Nexus Repository Community Edition has exceeded its usage limit. Limits will be enforced starting February 16, 2026, when new components can no longer be added.

可以看到写入超限之后,会提示进入 30 天宽限期,要么对组件进行清理,要么付费升级解锁限制。

3.88.0

最新版本可以看到组件数达到 4w 即会触发上限提醒。

# 镜像抢救

结合如上信息,我个人建议部署时优先选择 3.76.1 版本进行部署,如果能够预见规模不会很大,那么可以考虑选择 3.86.3

为了提前预防官方后期进一步降低权益,甚至对制品进行删库,我这里将如上两个版本都做了相应归档,有需要的同学,可以在这里获取。

地址:nexus3-docker (opens new window)

其中的 pack 标签,是考虑到可能有同学不习惯使用 docker 部署,就把对应的软件包也做了下载归档。

$ docker run -it docker.cnb.cool/znb/images/nexus3:pack ls /root

nexus-3.76.1-01-unix.tar.gz
nexus-3.86.3-01-linux-aarch_64.tar.gz
nexus-3.86.3-01-linux-x86_64.tar.gz

1
2
3
4
5

三个制品包,放到了 pack 标签的镜像中,可按需下载使用。如果你还有其他需要使用的版本希望我同步到这个仓库,欢迎评论区留言告诉我。