Skip to main content

快速启动oneThread后端项目

作者:程序员马丁

在线博客:https://nageoffer.com

note

Ragent AI —— 从 0 到 1 纯手工打造企业级 Agentic RAG,拒绝 Demo 玩具!AI 时代,助你拿个offer。

快速启动oneThread后端项目,元数据信息:

©版权所有 - 拿个offer-开源&项目实战星球专属学习项目,依据《中华人民共和国著作权法实施条例》和《知识星球产权保护》,严禁未经本项目原作者明确书面授权擅自分享至 GitHub、Gitee 等任何开放平台。违者将面临法律追究。


内容摘要:本章节将指导大家完成后端项目的本地克隆,熟悉各功能模块,完成 oneThread 依赖的配置中心接入,并启动相关后端模块。

课程目录如下所示:

  • 依赖环境
  • 克隆项目
  • 服务列表
  • 启动项目

依赖环境​

1. IDE​

IntelliJ IDEA 2023+

如果大家没有破解版的 IDEA 2023 及以上,社区版本也未尝不可。社区版本和默认版本在一些功能和插件支持上会有阉割,但是实测下来问题并不大。

IDEA 下载地址:https://www.jetbrains.com/zh-cn/idea

点击下载按钮,并下载下方的社区免费版本。

2. JDK​

oneThread 系统框架底层依赖 SpringBoot3,而这个版本对 JDK 的要求最低是 17。所以,我们需要将项目的 JDK 修改为 17 版本,避免项目编译或运行报错。

3. Maven​

我们可以先使用 IDEA 默认的 Maven 尝试编译项目,如果成功就不用做下述任何配置。如果失败,请参考下述内容尝试更换 Maven 版本。

因为 Maven 版本过低 3.6.x 或者 3.9.3 及以上版本,引起和 IDEA 的冲突等问题,导致大家项目编译报错。

项目下载安装​

1. 克隆项目​

打开 Gitcode 项目地址:https://gitcode.net/nageoffer/onethread 复制对应的 SSH 或 HTTP 克隆地址。

如果访问项目地址返回项目不存在或者 404,是因为没有权限。访问该地址申请项目权限:https://t.zsxq.com/ziDKV

不要图省事选择下载 ZIP,因为下载后的项目是没办法通过 Git 去更新远程仓库最新代码的。oneThread 代码后续可能还会不断更新迭代,每次打开项目都可以选择 Pull 下最新代码。

打开 IntelliJ IDEA,菜单栏顶部找到 Git -> Clone 选项。不同电脑 Windows 或者 Mac 的位置可能有所不同,找到 Clone 这个按钮即可。

URL 文本框填写 oneThread 的 HTTP 或者 SSH 地址,比如 SSH 的地址:git@gitcode.net:nageoffer/onethread.git,Directory 填写项目存储在本地的目录地址。

等待克隆及 Maven 初始化即可。

还有一点值得说的是,因为项目后期可能增加功能或者进行问题修复等代码更新场景,所以建议大家打开项目学习前,先更新下最新代码。

2. 配置环境​

IDE 中打开 Project Structure... 配置,查看 JDK 选项。

检查 JDK 版本是否正确,如果不是 JDK17 项目会编译报错,同时 Maven 打包不正确。

接下来,可在项目右侧目录点击 Maven 图标测试是否具备运行环境。如果 Maven 打包运行没问题后,代表环境已经测试通过,接下来就可以启动项目学习了。

服务列表​

.
├── core # 动态线程池核心模块包,实现动态线程池相关基础类定义
├── dashboard-dev # 应广大同学要求,以后每个项目尽量有前端页面方便查看和调试
├── example # 动态线程池示例包,演示线程池动态参数变更、监控和告警等功能
│   ├── apollo-example
│   └── nacos-cloud-example
├── spring-base # 动态线程池基础模块包,包含Spring扫描动态线程池、是否启用以及Banner打印等
└── starter # 动态线程池配置中心组件包,实现线程池结合Spring框架和配置中心动态刷新
├── adapter # 动态线程池适配层,比如对接 Web 容器 Tomcat 线程池等
│   └── web-spring-boot-starter # Web 容器线程池组件库
├── apollo-spring-boot-starter # Apollo 配置中心动态监控线程池组件库
├── common-spring-boot-starter # 配置中心公共监听等逻辑抽象组件库
├── dashboard-dev-spring-boot-starter # 控制台 API 组件库
└── nacos-cloud-spring-boot-starter # Nacos 配置中心动态监控线程池组件库

启动 oneThread 项目​

1. 启动后端服务​

咱们这里直接使用星球通用云服务器 Nacos,如果大家本地有 Nacos 的话,VM 参数配置中跳过有 Nacos 的即可。

在 Idea 中打开关于应用程序启动配置页面,配置相关的 VM 参数。

如果大家刚拉下来项目,有可能是没有服务列表的,大家将上图两个服务的应用程序类启动下即可。

报错也无所谓,只要能出现配置类执行下述流程就好。

打开编辑应用配置程序之后,点击 Modify options 添加 Add VM options 选项,将 VM 参数选项打开即可。

NacosCloudExampleApplication 添加以下 VM 参数到新增加的 VM options 输入框中。

-Dunique-name=-ding-ma
-Dspring.cloud.nacos.server-addr=****.****.****:8848
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED

DashboardDevApplication 添加以下 VM 参数到新增加的 VM options 输入框中,点击 OK 即可完成启动。

-Donethread.nacos.server-addr=****.****.****:8848

Q:unique-name 参数是什么?

A:我们通过 Nacos 配置中心读取各自对应的配置,如果不使用 unique-name 区分,大家的 配置名称是一致的,那么就会出现配置读取错乱的情况。各自改个不会和别人冲突的,比如自己名称英文加数字之类的。

Q:--add-opens 参数是什么?

A:在 Java 9+ 中,模块需要显式声明它们导出了哪些包(exports)以及开放哪些包允许深度反射(opens)。java.base 默认只 exports 了它的公共API(如 java.util.concurrent 包的公共类和方法),但不会自动opens任何包。这里放开 JUC 包下的权限,方便后续业务进行。

2. Nacos 创建配置文件​

访问 Nacos 控制台 创建动态线程池配置文件。

项目中文件地址:example/nacos-cloud-example/src/main/resources/nacos-config.yaml

将项目中的 Nacos 配置放到下述配置内容框中,将其中的几个配置参数进行替换,其中 receives 字段改为自己的手机号。

因为通用云服务器大家创建的配置比较多,所以可能点击发布后,找不到自己文件的情况。这种情况下,通过页面的 Data ID 筛选框筛选即可。

然后依次启动 NacosCloudExampleApplication 和 DashboardDevApplication 服务即可。

3. 验证动态线程池效果​

在 Nacos 配置文件中变更线程池的相关参数,如果 NacosCloudExampleApplication 控制台日志能够正常打印,即为启动成功。

2025-06-26T23:42:34.712+08:00  INFO 51192 --- [resher-thread_0] c.c.s.r.DynamicThreadPoolRefreshListener : [onethread-producer] Dynamic thread pool parameter changed:
corePoolSize: 12 => 24
maximumPoolSize: 24 => 36
capacity: 10000 => 10000
keepAliveTime: 19999 => 19999
rejectedType: CallerRunsPolicy => CallerRunsPolicy
allowCoreThreadTimeOut: false => false

完结,撒花 🎉