10.3k?这才是企业级的 Spring Cloud Alibaba 微服务开发平台,真心牛 x! 上

简介: 10.3k?这才是企业级的 Spring Cloud Alibaba 微服务开发平台,真心牛 x! 上


🐯 平台简介

👍 仓库地址:https://github.com/YunaiV/yudao-cloud

芋道,以开发者为中心,打造中国第一流的微服务开发平台,全部开源,个人与企业可 100% 免费使用。

架构图

  • 管理后台的电脑端:Vue3 提供 element-plus、vben(ant-design-vue) 两个版本,Vue2 提供 element-ui 版本
  • 管理后台的移动端:采用 uni-app 方案,一份代码多终端适配,同时支持 APP、小程序、H5!
  • 后端采用 Spring Cloud Alibaba 微服务架构,注册中心 + 配置中心 Nacos,消息队列 RocketMQ,定时任务 XXL-Job,服务保障 Sentinel,服务网关 Gateway,分布式事务 Seata
  • 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等,基于 MyBatis Plus、Redis + Redisson 操作
  • 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录
  • 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能
  • 支持 SaaS 多租户系统,可自定义每个租户的权限,提供透明化的多租户底层封装
  • 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
  • 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验
  • 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款
  • 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
  • 集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏

🐶 新手必读

严肃声明:现在、未来都不会有商业版本,所有代码全部开源!

「我喜欢写代码,乐此不疲」

「我喜欢做开源,以此为乐」

如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。

🐳 项目关系

架构演进

三个项目的功能对比,可见社区共同整理的 国产开源项目对比 表格。

后端项目

项目 简介
ruoyi-vue-pro 基于 Spring Boot 多模块架构
yudao-cloud 基于 Spring Cloud 微服务架构
Spring-Boot-Labs 系统学习 Spring Boot & Cloud 专栏

前端项目

项目 简介
yudao-ui-admin-vue3 基于 Vue3 + element-plus 实现的管理后台
yudao-ui-admin-vben 基于 Vue3 + vben(ant-design-vue) 实现的管理后台
yudao-ui-admin 基于 Vue2 + element-ui 实现的管理后台
yudao-ui-admin-uniapp 基于 uni-app + uni-ui 实现的管理后台的小程序
yudao-ui-go-view 基于 Vue3 + naive-ui 实现的大屏报表
yudao-ui-app 基于 uni-app + uview 实现的用户 App

😎 开源协议

为什么推荐使用本项目?

① 本项目采用比 Apache 2.0 更宽松的 MIT License 开源协议,个人与企业可 100% 免费使用,不用保留类作者、Copyright 信息。

② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。国产开源项目对比

③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,57000 行 Java 代码,22000 行代码注释。

🐼 内置功能

系统内置多种多种业务功能,可以用于快速你的业务系统:

功能分层

  • 系统功能
  • 基础设施
  • 工作流程
  • 支付系统
  • 会员中心
  • 数据报表
  • 商城系统
  • 微信公众号

🙂 所有功能,都通过 单元测试 保证高质量。

系统功能


功能 描述

用户管理 用户是系统操作者,该功能主要完成系统用户配置
⭐️ 在线用户 当前系统中活跃用户状态监控,支持手动踢下线

角色管理 角色菜单权限分配、设置角色按机构进行数据范围权限划分

菜单管理 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能

部门管理 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限

岗位管理 配置系统用户所属担任职务
🚀 租户管理 配置系统租户,支持 SaaS 场景下的多租户功能
🚀 租户套餐 配置租户套餐,自定每个租户的菜单、操作、按钮的权限

字典管理 对系统中经常使用的一些较为固定的数据进行维护
🚀 短信管理 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台
🚀 邮件管理 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台
🚀 站内信 系统内的消息通知,提供站内信模版、站内信消息
🚀 操作日志 系统正常操作日志记录和查询,集成 Swagger 生成日志内容
⭐️ 登录日志 系统登录日志记录查询,包含登录异常
🚀 错误码管理 系统所有错误码的管理,可在线修改错误提示,无需重启服务

通知公告 系统通知公告信息发布维护
🚀 敏感词 配置系统敏感词,支持标签分组
🚀 应用管理 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式
🚀 地区管理 展示省份、城市、区镇等城市信息,支持 IP 对应城市

工作流程


功能 描述
🚀 流程模型 配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则
🚀 流程表单 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件
🚀 用户分组 自定义用户分组,可用于工作流的审批分组
🚀 我的流程 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线
🚀 待办任务 查看自己【未】审批的工作任务,支持通过、不通过、转发、委派、退回等操作
🚀 已办任务 查看自己【已】审批的工作任务,未来会支持回退操作
🚀 OA 请假 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批

支付系统


功能 描述
🚀 商户信息 管理商户信息,支持 Saas 场景下的多商户功能
🚀 应用信息 配置商户的应用信息,对接支付宝、微信等多个支付渠道
🚀 支付订单 查看用户发起的支付宝、微信等的【支付】订单
🚀 退款订单 查看用户发起的支付宝、微信等的【退款】订单

ps:核心功能已经实现,正在对接微信小程序中...

基础设施


功能 描述
🚀 代码生成 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载
🚀 系统接口 基于 Swagger 自动生成相关的 RESTful API 接口文档
🚀 数据库文档 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式

表单构建 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件
🚀 配置管理 对系统动态配置常用参数,支持 SpringBoot 加载
⭐️ 定时任务 在线(添加、修改、删除)任务调度包含执行结果日志
🚀 文件服务 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等
🚀 API 日志 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题

MySQL 监控 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈

Redis 监控 监控 Redis 数据库的使用情况,使用的 Redis Key 管理
🚀 消息队列 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费
🚀 Java 监控 基于 Spring Boot Admin 实现 Java 应用的监控
🚀 链路追踪 接入 SkyWalking 组件,实现链路追踪
🚀 日志中心 接入 SkyWalking 组件,实现日志中心
🚀 分布式锁 基于 Redis 实现分布式锁,满足并发场景
🚀 幂等组件 基于 Redis 实现幂等组件,解决重复请求问题
🚀 服务保障 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能
🚀 日志服务 轻量级日志中心,查看远程服务器的日志
🚀 单元测试 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等

数据报表


功能 描述
🚀 报表设计器 支持数据报表、图形报表、打印设计等
🚀 大屏设计器 拖拽生成数据大屏,内置几十种图表组件

微信公众号


功能 描述
🚀 账号管理 配置接入的微信公众号,可支持多个公众号
🚀 数据统计 统计公众号的用户增减、累计用户、消息概况、接口分析等数据
🚀 粉丝管理 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作
🚀 消息管理 查看粉丝发送的消息列表,可主动回复粉丝消息
🚀 自动回复 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复
🚀 标签管理 对公众号的标签进行创建、查询、修改、删除等操作
🚀 菜单管理 自定义公众号的菜单,也可以从公众号同步菜单
🚀 素材管理 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频
🚀 图文草稿箱 新增常用的图文素材到草稿箱,可发布到公众号
🚀 图文发表记录 查看已发布成功的图文素材,支持删除操作

商城系统

功能图

🐨 技术栈

微服务

项目 说明
yudao-dependencies Maven 依赖版本管理
yudao-framework Java 框架拓展
yudao-server 管理后台 + 用户 APP 的服务端
yudao-module-system 系统功能的 Module 模块
yudao-module-member 会员中心的 Module 模块
yudao-module-infra 基础设施的 Module 模块
yudao-module-bpm 工作流程的 Module 模块
yudao-module-pay 支付系统的 Module 模块
yudao-module-mall 商城系统的 Module 模块
yudao-module-mp 微信公众号的 Module 模块
yudao-module-report 大屏报表 Module 模块

框架

框架 说明 版本 学习指南
Spring Cloud Alibaba 微服务框架 2021.0.4.0 文档
Nacos 配置中心 & 注册中心 2.0.4 文档
RocketMQ 消息队列 4.9.4 文档
Sentinel 服务保障 1.8.6 文档
XXL Job 定时任务 2.3.1 文档
Spring Cloud Gateway 服务网关 3.4.1 文档
Seata 分布式事务 1.6.1 文档
MySQL 数据库服务器 5.7 / 8.0+
Druid JDBC 连接池、监控组件 1.2.16 文档
MyBatis Plus MyBatis 增强工具包 3.5.3.1 文档
Dynamic Datasource 动态数据源 3.6.0 文档
Redis key-value 数据库 5.0 / 6.0
Redisson Redis 客户端 3.18.0 文档
Spring MVC MVC 框架 5.3.24 文档
Spring Security Spring 安全框架 5.7.5 文档
Hibernate Validator 参数校验组件 6.2.5 文档
Flowable 工作流引擎 6.7.2 文档
Knife4j Swagger 增强 UI 实现 4.0.0 文档
SkyWalking 分布式应用追踪系统 8.12.0 文档
Spring Boot Admin Spring Boot 监控平台 2.7.10 文档
Jackson JSON 工具库 2.13.3
MapStruct Java Bean 转换 1.5.3.Final 文档
Lombok 消除冗长的 Java 代码 1.18.26 文档
JUnit Java 单元测试框架 5.8.2 -
Mockito Java Mock 框架 4.8.0 -

🐷 演示图

系统功能

个人中心租户管理

相关文章
|
9月前
|
算法 Java 微服务
【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate
微服务架构是What?? 微服务架构是一种架构模式,它提出将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务允许在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http协议的RESTful API或RPC协议)。 每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建
708 126
|
9月前
|
负载均衡 算法 Java
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
1. 什么是服务治理? SpringCloud封装了Netfix开发的Eureka模块来实现服务治理 在传统pc的远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册
477 0
|
10月前
|
数据可视化 Java BI
将 Spring 微服务与 BI 工具集成:最佳实践
本文探讨了 Spring 微服务与商业智能(BI)工具集成的潜力与实践。随着微服务架构和数据分析需求的增长,Spring Boot 和 Spring Cloud 提供了构建可扩展、弹性服务的框架,而 BI 工具则增强了数据可视化与实时分析能力。文章介绍了 Spring 微服务的核心概念、BI 工具在企业中的作用,并深入分析了两者集成带来的优势,如实时数据处理、个性化报告、数据聚合与安全保障。同时,文中还总结了集成过程中的最佳实践,包括事件驱动架构、集中配置管理、数据安全控制、模块化设计与持续优化策略,旨在帮助企业构建高效、智能的数据驱动系统。
450 1
将 Spring 微服务与 BI 工具集成:最佳实践
|
10月前
|
Java 数据库 数据安全/隐私保护
Spring 微服务和多租户:处理多个客户端
本文介绍了如何在 Spring Boot 微服务架构中实现多租户。多租户允许单个应用实例为多个客户提供独立服务,尤其适用于 SaaS 应用。文章探讨了多租户的类型、优势与挑战,并详细说明了如何通过 Spring Boot 的灵活配置实现租户隔离、动态租户管理及数据源路由,同时确保数据安全与系统可扩展性。结合微服务的优势,开发者可以构建高效、可维护的多租户系统。
784 127
|
10月前
|
存储 安全 Java
管理 Spring 微服务中的分布式会话
在微服务架构中,管理分布式会话是确保用户体验一致性和系统可扩展性的关键挑战。本文探讨了在 Spring 框架下实现分布式会话管理的多种方法,包括集中式会话存储和客户端会话存储(如 Cookie),并分析了它们的优缺点。同时,文章还涵盖了与分布式会话相关的安全考虑,如数据加密、令牌验证、安全 Cookie 政策以及服务间身份验证。此外,文中强调了分布式会话在提升系统可扩展性、增强可用性、实现数据一致性及优化资源利用方面的显著优势。通过合理选择会话管理策略,结合 Spring 提供的强大工具,开发人员可以在保证系统鲁棒性的同时,提供无缝的用户体验。
207 0
|
10月前
|
消息中间件 Java 数据库
Spring 微服务中的数据一致性:最终一致性与强一致性
本文探讨了在Spring微服务中实现数据一致性的策略,重点分析了最终一致性和强一致性的定义、优缺点及适用场景。结合Spring Boot与Spring Cloud框架,介绍了如何根据业务需求选择合适的一致性模型,并提供了实现建议,帮助开发者在分布式系统中确保数据的可靠性与同步性。
614 0
|
9月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1356 2
Spring Boot 3.x 微服务架构实战指南
|
9月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
10月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
663 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
|
10月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
834 1
日志收集和Spring 微服务监控的最佳实践