1 Star 0 Fork 0

shuigedeng / taotao-cloud-project

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

taotao-cloud-project

License Downloads Downloads Downloads Downloads Downloads Downloads Downloads Downloads Downloads Downloads Downloads Downloads Downloads

1. 如果您觉得有帮助,请点右上角 "Star" 支持一下谢谢

taotao-cloud (taotao云平台) 基于gradle8.7、jdk21, 支持graalvm21, 采用最新的spring 6.1.6、SpringBoot 3.2.5、SpringCloud 2023.0.1、SpringSecurity 6.2.4、Nacos 2.3.2、Mybatis-Plus 3.5.6、Redis 7等框架,开发的一款企业级微服务架构的云服务平台, 具有组件化、高性能、功能丰富的特点。代码简洁,架构清晰,组件可自由搭配,遵循SpringBoot编程思想,高度模块化和可配置化。

具备服务注册&发现、配置中心、服务限流、熔断降级、监控报警、多数据源、工作流、高亮搜索、定时任务、分布式缓存、分布式事务、分布式存储等功能,用于快速构建微服务项目。

目前支持Shell、Docker、Docker-compose、K8s、Github/Genkins ci/cd等多种部署方式,实现RBAC权限。 遵循阿里代码规范,采用restful设计风格及DDD(领域驱动设计)思想,代码简洁、架构清晰,非常适合作为基础框架使用。基于DDD(领域驱动设计)的轻量级快速开发框架,致力于企业技术架构的可沉淀和可传承,解决复杂业务场景的扩展问题

仓库的目的: 工作以来的技术总结和技术沉淀(业余时间进行开发) 仓库代码中不涉及公司任何业务代码

主要包括如下几部分

  • 大数据模块 集成基于hadoop、hive、dolphinscheduler的离线批量日志数据处理和分析, 用户行为分析、推荐系统, flink、flink cdc、flink cep、spark streaming、presto、seatunnel流式处理计算框架, tidb、doris离线数据仓库, hudi、paimon数据湖等大数据处理

  • 微服务模块 基于spring cloud alibaba微服务基础脚手架框架,用于基础服务的集成和跟业务无关的基础技术集成, 提供大量的starters组件作为技术底层支持,同时基础框架集中统一优化中间件相关服务及使用, 提供高性能,更方便的基础服务接口及工具,完全可以在实际工作中使用

  • saas商城模块 基于微服务模块构建的前后端分离的B2B2C商城系统, 支持商家入驻支, 持分布式部署, 使用github action CI/CD持续集成, 前后端均使用kubernetes部署, 各个API独立, 管理前端使用vue3 ant-design-vue开发, 移动端使用taro taro-ui开发, ** 系统全端全部代码开源**

  • sass商城多端前端模块 主要使用react antd进行前后端分离开发, 集成以taro, taro-ui, react native 为主的多端合一框架。

  • python模块 主要是集成了基于django的web开发, 基于scrapy爬虫开发, homeassistant 家庭自动化框架原理的分析

总之基于spring cloud alibaba的微服务架构 hadoop hive flink spark hive 等大数据处理实践。旨在提供技术框架的基础能力的封装,减少开发工作,只关注业务

2. spring cloud 微服务架构图

mark

3. spring cloud 微服务分层图

mark

4. dependencies

Requires:

JAVA_VERSION >= 21 (推荐使用graalvm-jdk-21)
GRALE_VERSION >= 8.7
IDEA_VERSION >= 2023.4

Gradle:

dependencyManagement{
  imports {
    mavenBom "io.github.shuigedeng:taotao-cloud-dependencies:2024.05"
  }
}

api "io.github.shuigedeng:taotao-cloud-starter-web"

Maven:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.github.shuigedeng</groupId>
      <artifactId>taotao-cloud-dependencies</artifactId>
      <version>2024.05</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>


<dependencies>
    <dependency>
      <groupId>io.github.shuigedeng</groupId>
      <artifactId>taotao-cloud-starter-web</artifactId>
    </dependency>
</dependencies>

5. 核心依赖

依赖 版本
Spring 6.1.6
Spring Boot 3.2.5
Spring Cloud 2023.0.1
Spring Cloud Alibaba 2023.0.1.0
Spring Cloud Tencent 1.14.0-2023.0.0-RC1
Spring Cloud huawei 1.11.7-2023.0.x
Seata 2.0.0
Sentinel 1.8.7
Spring-kafka 3.1.4
Roketmq 5.2.0
Spring Security 6.2.4
Mybatis Plus 3.5.6
Hutool 6.0.0-M12
Mysql 8.3.0
Querydsl 5.1.0
Swagger 3.0.0
Knife4j 4.5.0
Redisson 3.29.0
Lettuce 6.3.1.RELEASE
Elasticsearch 8.11.5
Xxl-job 2.4.1
EasyCaptcha 1.6.2
Guava 33.1.0-jre
Grpc 1.63.0
Arthas 3.7.2
Dynamic-tp 1.1.7-3.x
Elasticjob 3.0.4
Powerjob 5.0.1-beta
Forest 1.5.36
Netty 4.1.109.Final

6. 演示地址

移动端 ReactNative 小程序 H5
安卓:滔滔商城.apk
IOS:滔滔商城.app(目前暂不可用)

https://m.taotaocloud.top

7. 功能特点

  • 微服务技术框架: 前后端分离的企业级微服务架构、主要针对解决微服务和业务开发时常见的 非功能性需求 简化开发工作、提高生产率、解决通用问题
  • 主体框架:采用最新的Spring Boot 3.2.5Spring Cloud 2023.0.1Spring Cloud Alibaba 2023.0.1.0 版本进行设计
  • 统一注册:支持spring cloud alibaba Nacos作为注册中心,实现多配置、分群组、分命名空间、多业务模块的注册和发现功能
  • 统一认证:统一Oauth2认证协议,采用jwt的方式,实现统一认证,完备的RBAC权限管理、数据权限处理、网关统一鉴权、灰度发布。 支持多种登录方式,如账号密码,验证码登陆、支持支付宝、钉钉、码云、GitHub、GitLab、QQ、微信、企业微信、微博等第三方登录,微信登录,指纹登录,手势登录,手机号码登录,人脸识别登录等 优化Spring Security内部实现 ,实现API调用的统一出口和权限认证授权中心
  • 业务监控:利用Spring Boot admin监控各个独立服务的运行状态
  • 日志分析:集成kafka、elk、prometheus、loki等实时监控日志(请求日志、系统日志、数据变更日志、用户日志) 提供完善的企业微服务流量监控,日志监控能力
  • 分布式事务:集成spring cloud alibaba seata分布式事务处理
  • mvc封装:通用的 Controller、Service、Mapper、全局异常、全局序列化、反序列化规则,请求头传递、调用日志、灰度、统一配置编码解码规则等,AOP方式优雅记录操作日志、优雅缓存解决方案、防缓存击穿
  • 业务熔断:采用spring cloud alibaba Sentinel实现业务熔断处理,避免服务之间出现雪崩
  • 链路追踪:自定义traceId的方式,实现简单的链路追踪功能、集成skywalking、sleuth、zipkin链路监控
  • 分布式任务:集成xxl-job、powerjob、quartz等分布式定时任务处理
  • 内部调用:集成了FeignDubbo以及grpc等模式支持内部调用,并且可以实现无缝切换
  • 身份注入:通过注解的方式,实现用户登录信息的快速注入
  • 网关支持:支持流量控制、拉黑名单、过滤请求、灰度发布方案、防重复提交、命中缓存降级访问、网关统一鉴权等
  • 在线文档:通过接入Knife4j,实现在线API文档的查看与调试,对swagger、knife4j二次封装,实现配置即文档
  • 业务监控:利用Spring Boot Admin来监控各个独立Service的运行状态。
  • 代码生成:基于Mybatis-plus-generator自动生成代码,提升开发效率,使用代码生成器可以一键生成 Java、Vue 前后端代码、SQL 脚本、接口文档,支持单表、树表、主子表;
  • 消息中心:集成消息中间件RocketMQ、kafka,对业务进行异步处理
  • 实时通信:实时通信,采用 Spring WebSocket 实现,内置 Token 身份校验,支持 WebSocket 集群
  • 业务分离:采用前后端分离的框架设计,前端采用react antd、taro脚手架快速开放
  • 多租户功能:集成Mybatis Plusjpa,实现saas多租户功能 可自定义每个租户的权限,提供透明化的多租户底层封装
  • 前端支持:采用 taro 方案,一份代码多终端适配,同时支持 APP、小程序、H5!
  • 前后端流水线支持:包含基于github、 GitLab Runner 的 kubernetes(k8s)、Docker、Shell 等执行器执行 CI/CD 流水线进行自动构建、制作 Docker 镜像、发布
  • 工作流功能:工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
  • 短信和oss支持:集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
  • 容器化支持: 提供对常见容器化支持 Docker、docker-compose、Kubernetes、Rancher2支持 完善的微服务部署方案
  • webflux支持: lambda、stream api、webflux 的生产实践
  • 开放平台: 提供应用管理,方便第三方系统接入,支持多租户(应用隔离)
  • 组件化: 引入组件化的思想实现高内聚低耦合并且高度可配置化
  • 代码规范: 注重代码规范,严格控制包依赖

PS: 借鉴了其他开源项目

8. 模块说明

taotao-cloud-project -- 父项目
│  ├─taotao-cloud-bigdata -- 大数据模块
│  ├─taotao-cloud-custom -- 自定义模块
│  │  ├─taotao-cloud-sign-partterns  -- 设计模式
│  │  ├─taotao-cloud-distributed-tx  -- 手写分布式事务
│  │  ├─taotao-cloud-rpc  -- 手写rpc框架
│  │  ├─taotao-cloud-raft  -- raft实现
│  ├─taotao-cloud-microservice -- 微服务模块
│  │  ├─taotao-cloud-ai  -- ai模块
│  │  ├─taotao-cloud-bff-api  -- 基于bff架构的api模块
│  │  ├─taotao-cloud-bff-graphql  -- 基于bff架构的graphql模块
│  │  ├─taotao-cloud-business  -- 所有的业务模块
│  │  ├─taotao-cloud-data-sync  -- 数据同步模块
│  │  ├─taotao-cloud-data-analysis  -- 数据分析模块
│  │  ├─taotao-cloud-gateway  -- 网关模块
│  │  ├─taotao-cloud-generator  -- 代码生成模块
│  │  ├─taotao-cloud-monitor  -- 监控模块
│  │  ├─taotao-cloud-open-platform  -- 开放平台模块
│  │  ├─taotao-cloud-recommend  -- 推荐模块
│  │  ├─taotao-cloud-shell  -- shell模块
│  │  ├─taotao-cloud-xxljob  -- xxl-job模块
│  ├─taotao-cloud-plugin -- 插件模块
│  ├─taotao-cloud-python -- python模块
│  ├─taotao-cloud-scala -- scala模块
│  ├─taotao-cloud-warehouse -- 数仓模块
│  │  ├─taotao-cloud-offline-warehouse  -- 离线仓库模块
│  │  ├─taotao-cloud-offline-weblog -- 离线日志分析模块
│  │  ├─taotao-cloud-realtime-datalake  -- 准实时数据湖模块
│  │  ├─taotao-cloud-realtime-mall -- 商城日志分析模块
│  │  ├─taotao-cloud-realtime-recommend -- 实时推荐模块
│  │  ├─taotao-cloud-realtime-travel -- 实时旅游模块

9.开源共建

  1. 欢迎提交 pull request ,注意对应提交对应 dev 分支

  2. 欢迎提交 issue ,请写清楚遇到问题的原因、开发环境、复显步骤。

  3. 不接受功能请求issue ,功能请求可能会被直接关闭。

  4. mail: 981376577@qq.com | QQ: 981376577

10.参与贡献

开发: 目前个人独立开放

11.项目截图

调度任务中心 nacos服务注册
granfana页面 prometheus页面
skywalking页面 sentinel页面
kibana页面 zipkin页面
springadmin页面 knife4j页面
swagger页面 arthas页面

12.基础组件starter项目模块 (暂未开源)

+--- Project ':taotao-cloud-dependencies'
+--- Project ':taotao-cloud-starter-agent'
+--- Project ':taotao-cloud-starter-apt'
+--- Project ':taotao-cloud-starter-cache'
+--- Project ':taotao-cloud-starter-canal'
+--- Project ':taotao-cloud-starter-captcha'
+--- Project ':taotao-cloud-starter-common'
+--- Project ':taotao-cloud-starter-core'
+--- Project ':taotao-cloud-starter-bootstrap'
+--- Project ':taotao-cloud-starter-data'
+--- Project ':taotao-cloud-starter-dingtalk'
+--- Project ':taotao-cloud-starter-eventbus'
+--- Project ':taotao-cloud-starter-dubbo'
+--- Project ':taotao-cloud-starter-elk'
+--- Project ':taotao-cloud-starter-encrypt'
+--- Project ':taotao-cloud-starter-facility'
+--- Project ':taotao-cloud-starter-grpc'
+--- Project ':taotao-cloud-starter-idempotent'
+--- Project ':taotao-cloud-starter-idgenerator'
+--- Project ':taotao-cloud-starter-ip2region'
+--- Project ':taotao-cloud-starter-job'
+--- Project ':taotao-cloud-starter-laytpl'
+--- Project ':taotao-cloud-starter-limit'
+--- Project ':taotao-cloud-starter-lock'
+--- Project ':taotao-cloud-starter-logger'
+--- Project ':taotao-cloud-starter-mail'
+--- Project ':taotao-cloud-starter-metrics'
+--- Project ':taotao-cloud-starter-monitor'
+--- Project ':taotao-cloud-starter-mq'
+--- Project ':taotao-cloud-starter-office'
+--- Project ':taotao-cloud-starter-openai'
+--- Project ':taotao-cloud-starter-openapi'
+--- Project ':taotao-cloud-starter-openfeign'
+--- Project ':taotao-cloud-starter-oss'
+--- Project ':taotao-cloud-starter-pay'
+--- Project ':taotao-cloud-starter-pinyin'
+--- Project ':taotao-cloud-starter-prometheus'
+--- Project ':taotao-cloud-starter-retry'
+--- Project ':taotao-cloud-starter-rxjava'
+--- Project ':taotao-cloud-starter-security'
+--- Project ':taotao-cloud-starter-sensitive'
+--- Project ':taotao-cloud-starter-sms'
+--- Project ':taotao-cloud-starter-springdoc'
+--- Project ':taotao-cloud-starter-third-client'
+--- Project ':taotao-cloud-starter-threadpool'
+--- Project ':taotao-cloud-starter-tracing'
+--- Project ':taotao-cloud-starter-translation'
+--- Project ':taotao-cloud-starter-web'
+--- Project ':taotao-cloud-starter-websocket'
+--- Project ':taotao-cloud-starter-websocket-netty'
+--- Project ':taotao-cloud-starter-xss'
\--- Project ':taotao-cloud-starter-zookeeper'
Apache License Version 2.0, January 2004 https://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

暂无描述 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/ttc-cloud/taotao-cloud-project.git
git@gitee.com:ttc-cloud/taotao-cloud-project.git
ttc-cloud
taotao-cloud-project
taotao-cloud-project
master

搜索帮助