同步操作将从 laigeoffer/pmhub 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
PmHub 包括认证、流程、项目管理、用户、网关等服务。包含了 Redis 缓存、RocketMQ 消息队列、Docker 容器化、Jenkins 自动化部署、Spring Security 安全框架、Nacos 服务注册和发现、Sentinel 熔断限流、Seata 分布式事务、Spring Boot Actuator 服务监控、SkyWalking 链路追踪、OpenFeign 服务调用,Vue3 前端框架等互联网开发中需要用到的主流技术栈,可以帮助同学们快速掌握微服务/分布式项目的核心知识点。
并且同时 PmHub 也是一套企业工作流的开发框架,您可以根据自身需求,快速定制出适合自己公司的企业工作流系统。
如果对开源项目感兴趣,可以关注来个 offer 的另外一个实战项目:技术派,一个前后端分离的社区项目。GitHub 上已经星标 1.5k+,不少同学就是靠这个项目在往年的校招中拿到了不错的 offer。
为了方便大家循序渐进式的学习,我们已经推出两个版本:
可以根据自己的实际情况选择合适的版本进行学习,我们将会倾其所有,在第一时间帮助大家解决所有学习过程遇到的问题,让你的学习曲线变得非常丝滑😁。
此为 PmHub 微服务版本说明文档!单体版本说明文档请移步:单体版本说明
来个 offer 组织由二哥发起,苍何主理,旨在帮助同学们在校招、社招中拿到满意的 offer。
加入PmHub官方编程星球后,即可解锁来个 offer 组织下的所有项目的付费文档及产品原型,以及 1 对 1 的技术面试辅导服务。
项目 | 码云 | GitHub | 简介 |
---|---|---|---|
PmHub | Gitee | GitHub | 一套智能项目管理系统,即将帮助不少同学在接下来的校招/社招中斩获满意 offer。 |
技术派 | Gitee | GitHub | 一个前后端分离的社区项目,帮助过不少同学在秋招中斩获满意 offer。 |
下面这张系统架构图可以帮助大家快速了解 PmHub 项目的系统架构,从前端到网关、从服务应用到基础服务组件、从存储技术到运维部署,可以说是一目了然。
下面这张架构选型图可以帮助大家快速了解 PmHub 项目的技术选型,以及在官方手册中会更详细的说明我们为什么选择该技术,毕竟授人以鱼不如授人以渔嘛。
下面这张技术架构图可以帮助大家快速了解 PmHub 项目的技术架构,以及各个模块之间的交互关系。
优质的项目,离不开一张清晰的鸟瞰图(😄)。
pmhub
获取账号和密码,帮我们增加一个粉丝,哈哈哈,开源不易,请满足一下我的虚荣心(😁)。)
com.laigeoffer.pmhub
├── pmhub-ui // 前端框架 [1024]
├── pmhub-gateway // 网关模块 [6880]
├── pmhub-auth // 认证中心 [6800]
├── pmhub-api // 接口模块
│ └── pmhub-api-system // 系统接口
│ └── pmhub-api-workflow // 流程接口
├── pmhub-base // 通用模块
│ └── pmhub-base-core // 核心模块组件
│ └── pmhub-base-datasource // 多数据源组件
│ └── pmhub-base-seata // 分布式事务组件
│ └── pmhub-base-security // 安全模块组件
│ └── pmhub-base-swagger // 系统接口组件
│ └── pmhub-base-notice // 消息组件组件
├── pmhub-modules // 业务模块
│ └── pmhub-system // 系统模块 [6801]
│ └── pmhub-gen // 代码生成 [6802]
│ └── pmhub-job // 定时任务 [6803]
│ └── pmhub-project // 项目服务 [6806]
│ └── pmhub-workflow // 流程服务 [6808]
├── pmhub-monitor // 监控中心 [6888]
├──pom.xml // 公共依赖
单体版本请参考:单体版本部署手册
技术 | 名称 | 版本 | 官网 | |
---|---|---|---|---|
1 | Spring Boot | 基础框架 | 2.7.18 | https://spring.io/projects/spring-boot |
2 | SpringCloud | 微服务框架 | 2021.0.8 | https://spring.io/projects/spring-cloud |
3 | SpringCloud Alibaba | 阿里微服务框架 | 2021.0.5.0 | https://github.com/alibaba/spring-cloud-alibaba |
4 | SpringCloud Gateway | 服务网关 | 3.1.8 | https://spring.io/projects/spring-cloud-gateway |
5 | MyBatis-Plus | 持久层框架 | 3.5.1 | https://baomidou.com |
6 | Redis | 分布式缓存数据库 | Latest | https://redis.io |
7 | RocketMQ | 消息队列 | 2.2.3 | https://rocketmq.apache.org |
8 | HuTool | 小而全的工具集项目 | 5.8.11 | https://hutool.cn |
9 | Maven | 项目构建管理 | 3.9.1 | http://maven.apache.org |
10 | Sentinel | 流控防护框架 | 1.8.6 | https://github.com/alibaba/Sentinel |
11 | Java | 开发版本 | 1.8 | https://www.oracle.com/java/technologies |
①、使用 Git 命令
网络比较通畅的小伙伴可以直接从 GitHub 上拉取,命令如下:
git clone git@github.com:laigeoffer/pmhub.git
国内的小伙伴也可以直接使用码云 Gitee 上的镜像仓库地址拉取:
git clone https://gitee.com/laigeoffer/pmhub.git
②、直接下载压缩包
也可以直接下载 GitHub 上的压缩包,然后解压到本地。
③、直接通过 GitHub 桌面版
我个人一直比较喜欢实用 GitHub 桌面版来管理仓库,图形化界面操作起来也比较舒服。
这一步应该就不需要我多讲了,相信大家都能搞定。
推荐大家使用 Navicat 这款图形化数据库管理工具。
数据库文件路径在 pmhub/sql/,在Navicat中导入所有数据库文件(每一个微服务对应一个数据库)
可以直接右键在 terminal 终端中打开,然后通过 pwd 和 ls 命令查看文件的绝对路径。
拿到绝对路径后,就可以在 Navicat 中导入数据库文件了。
导入完成后,刷新一下就可以看到最新的数据库表了。 (当然你也可以直接复制sql,然后在Navicat执行)
可以选择本机直接安装 MySQL,也可以通过 Docker 的方式,但需要做好磁盘挂载,推荐本机安装!
①、如果你是 macOS 用户,可以直接在终端输入redis-server
启动 Redis。
②、如果你是 Windows 用户,可以直接双击 redis-server.exe 启动 Redis。
③、当然也可以直接通过 Docker 启动 Redis。
# 拉取 Redis 镜像:
docker pull redis
# 启动 Redis 容器:
docker run --name my-redis -d redis
官网下载 Nacos,找到 /conf/application.properties 文件,修改数据库连接信息。可以直接复制 pmhub/docker/nacos/conf/application.properties 内容。
修改下数据库配置信息为你自己的数据库,本地启动可以把鉴权关了。
1. 如果数据库名也是 pmhub-nacos,那么只需要修改用户名和密码即可。
2. 如果用户名也是 root,那么只需要修改密码即可。
3. 如果密码也一样,那么就不需要修改了(不可能,绝对不可能这么巧😂)。
①、如果你是 macOS 用户,可以直接在终端输入sh startup.sh -m standalone
启动 Nacos。
②、如果你是 Windows 用户,可以直接双击 startup.cmd 启动 Nacos。
启动成功后访问 http://localhost:8848/nacos 即可看到 Nacos 控制台。默认用户名密码都是 nacos。
参考手册:SkyWalking 启动手册
参考手册:Sentinel 启动手册
参考手册:Seata 启动手册
参考手册:Rocketmq 启动手册
注意:如果遇到服务启动失败,可自行查看 nacos 配置是否做了修改,如数据库连接信息等。
①、启动 pmhub-gateway 网关服务
找到 pmhub-gateway 项目,右键 Run PmHubGatewayApplication.main()。
②、启动 pmhub-auth 认证服务
找到 pmhub-auth 项目,右键 Run PmHubAuthApplication.main()。
③、启动 pmhub-system 系统服务
找到 pmhub-system 项目(在pmhub-modules 下),右键 Run PmHubSystemApplication.main()。 pmhub-system 启动前需要修改 nacos 中的 pmhub-system-dev.yml 配置文件,修改数据库连接信息为你自己的数据库。
④、启动 pmhub-project 项目管理服务
找到 pmhub-project 项目(在pmhub-modules 下),右键 Run PmHubProjectApplication.main()。
启动前需要修改 nacos 中的 pmhub-project-dev.yml 配置文件,修改数据库连接信息为你自己的数据库。
⑤、启动 pmhub-workflow 流程管理服务
找到 pmhub-workflow 项目(在pmhub-modules 下),右键 Run PmHubWorkflowApplication.main()。
启动前需要修改 nacos 中的 pmhub-workflow-dev.yml 配置文件,修改数据库连接信息为你自己的数据库。
⑥、启动 pmhub-gen 代码生成服务
找到 pmhub-gen 项目(在pmhub-modules 下),右键 Run PmHubGenApplication.main()。
启动前需要修改 nacos 中的 pmhub-gen-dev.yml 配置文件,修改数据库连接信息为你自己的数据库。
⑦、启动 pmhub-job 定时任务调度服务
找到 pmhub-job 项目(在pmhub-modules 下),右键 Run PmHubJobApplication.main()。
启动前需要修改 nacos 中的 pmhub-job-dev.yml 配置文件,修改数据库连接信息为你自己的数据库。
⑧、启动 pmhub-monitor 监控服务
找到 pmhub-monitor 项目,右键 Run PmHubMonitorApplication.main()。
启动前需要修改 nacos 中的 pmhub-monitor-dev.yml 配置文件,修改监控后台的用户名和密码,以及首页展示标题。
启动成功后可访问:http://localhost:6888/wallboard
可以在线实时查案各个服务的状态以及日志:
请参考 pmhub-ui 项目的 README.md 文档,前端工程结构说明
注意:微服务版本直接启动 pmhub-ui 即可,如果是单体版本的前端需要到 pmhub-boot下的 pmhub-ui 启动。
http://localhost:1024/dev-api/swagger-ui/index.html
请参考 云容器部署系统
后端技术栈
PmHub 高质量教程共 70+ 篇,从中整理出 10 篇,供大家免费学习。
工具 | 说明 | 官网 |
---|---|---|
IDEA | java开发工具 | https://www.jetbrains.com |
visualstudio | web开发工具 | https://code.visualstudio.com/ |
Chrome | 浏览器 | https://www.google.com/intl/zh-CN/chrome |
ScreenToGif | gif录屏 | https://www.screentogif.com |
SniPaste | 截图 | https://www.snipaste.com |
PicPick | 图片处理工具 | https://picpick.app |
MarkText | markdown编辑器 | https://github.com/marktext/marktext |
curl | http终端请求 | https://curl.se |
Postman | API接口调试 | https://www.postman.com |
draw.io | 流程图、架构图绘制 | https://www.diagrams.net/ |
Axure | 原型图设计工具 | https://www.axure.com |
navicat | 数据库连接工具 | https://www.navicat.com |
DBeaver | 免费开源的数据库连接工具 | https://dbeaver.io |
iTerm2 | mac终端 | https://iterm2.com |
windows terminal | win终端 | https://learn.microsoft.com/en-us/windows/terminal/install |
SwitchHosts | host管理 | https://github.com/oldj/SwitchHosts/releases |
工具 | 版本 | 下载 |
---|---|---|
jdk | 1.8+ | https://www.oracle.com/java/technologies/downloads/#java8 |
maven | 3.4+ | https://maven.apache.org/ |
mysql | 5.7+/8.0+ | https://www.mysql.com/downloads/ |
redis | 5.0+ | https://redis.io/download/ |
elasticsearch | 8.0.0+ | https://www.elastic.co/cn/downloads/elasticsearch |
nginx | 1.10+ | https://nginx.org/en/download.html |
rocketmq | 5.0.4+ | https://www.rabbitmq.com/news.html |
ali-oss | 3.15.1 | https://help.aliyun.com/document_detail/31946.html |
git | 2.34.1 | http://github.com/ |
docker | 4.10.0+ | https://docs.docker.com/desktop/ |
freessl | https证书 | https://freessl.cn/ |
内置功能我们使用了若依的框架,为什么要用若依,一来我们觉得基础的后台功能没有必要再重复造轮子,我们需要节省时间花力气在项目核心业务上,二来我们希望站在巨人的肩膀上,若依是后台系统中很优秀的框架,我们基于其做的二次开发,相信也能再创辉煌!
感谢所有参与开源贡献的小伙伴,PmHub 因你们而更强大!
微信搜 苍何 或扫描下方二维码关注苍何的原创公众号,回复 666 即可免费领取 2000G 编程学习资源。
Copyright (c) 2023-2024 PmHub(苍何、沉默王二)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。