[power by 码上talk©]
面向中台架构设计,践行“小前台,大中台”**,基于spring cloud开发的微服务商城后台。 弹性的水平架构设计,优雅的代码,合理的注释,丰富的接口文档,适合想入门微服务,却又没有适合的项目练习的同学们。 同时该项目适用于企业面对超大型业务需求,免于项目技术选型的迷茫,搭建项目繁琐,服务集群部署(提供docker集群自动化CI/CD解决方案)将主要的精力用于业务开发上。
spring cloud微服务基于spirngboot开发,还没有springboot开发基础?公司项目不太需要微服务?不用纠结 =====> 另有springboot版本
tacomall并不是一个单纯的后台项目,你可能还需要跨平台小程序=====> tacomall-uniapp
除此之外,你希望我们有一个完整的商城开源项目=====> 商家管理后台 平台管理后台
[TOC]
__ ___ ___ ___ ___ _ __ ___ // //
/ / // ) ) // ) ) // ) ) // ) ) ) ) // ) ) // //
/ / // / / // // / / // / / / / // / / // //
/ / ((___( ( ((____ ((___/ / // / / / / ((___( ( // //
如果你发现项目不错,不要忘记给项目点个赞👍,你的支持是我们前进的动力 :)
微信小程序(微信扫一扫) | 商家管理后台 | 平台管理后台 |
>>>点击进入商家管理后台 | >>>点击进入平台管理后台 |
关注“码上talk”微信公众号 | tacomall QQ交流群 | 我的微信 |
如果您觉得有帮助,请点右上角 "Star" 支持一下谢谢
如果您对此项目感兴趣,请点右上角 "Star" 支持一下谢谢
如果需要帮助请留言或者加微信,晚上20:00后统一回复解决
面对用户量不高、部署条件受限,同时需要快速开发的项目需求(业务代码覆盖广)
面对PV高并发,架构高可用设计,对技术栈要求较高,同时部署设备有一定要求(架构性项目),注意,由于中间件项目很大,没有上传,所以本项目不含docker配置,整个系统运行需要中间件支持,需要docker配置的请加上面》》 tacomallQQ群《《 获取
通过项目结构,你将清楚明白你即将入手的是一个怎么样的项目,你可能需要什么,如何快速的把它变成自己的产品。
- 服务注册 服务发现、注册
- 服务配置 服务配置
- 服务监控 服务监控及服务调整(包含:日志等级调整、基础服务状态与服务使用状态)
- 服务网关 接口鉴权和路由分配
- 服务调度 任务集中调度服务
- 业务中台 平台业务中台化(包括用户,商品等颗粒化业务)
- 数据中台 平台数据中台化(商品标签,画像)
- 小程序前台 小程序接口
- 商家前台 商家接口
- 平台前台 平台接口
中台架构是一种业务**,它是为了面对急剧变化的业务需求和相对滞后的软件项目交付的矛盾而产生的业务组织和代码开发方式的转变,而微服务又是一个很好的支持中台架构实现的技术手段。
中台架构原理图(注意:并非项目实际结构,仅代表原理)
微服务原理图(注意:并非项目实际结构,仅代表原理)
tacomall-sprincloud 项目
├─authorize 鉴权服务
├─common 公共依赖
├─config 服务监控
├─api 前台(接口)
│ ├─portal 小程序前台
│ ├─merchant 商家前台
│ ├─admin 平台前台
│ ├─open 开发前台
├─scheduler 任务调度
│ ├─admin 任务配置
│ ├─executor 任务执行
├─service 中台
│ ├─service-file 文件服务
│ ├─service-member 会员服务
│ ├─service-op 第三方开放平台
├─mq 队列
│ ├─kafka kafka队列,含日志
│ ├─rabbitmq rabbitmq,处理秒杀业务
├─gateway 服务网关
├─pom.xml 依赖构建配置
我们希望开源的项目能够让每一个人都能够一看就懂,轻松上手,但这并不意味者我们不需要做任何东西,相反,在正式运行项目前,你必须完成以下步骤。
为了避免运行开发中遇到一些意想不到的问题,我们推荐你安装如下环境。
- Git
- JDK1.8+
- Maven3.5+
- Mysql5.7+
- Idea2019.3.3
- Postman
- mysql
- pdman
通过以下步骤,你将很快看见项目运行起来了!
- 克隆项目
git clone https://gitee.com/running-cat/tacomall-springcloud.git
- 配置idea
为了更好的运行项目,我们需要将idea的jdk环境路径配置为我们上面早已安装好的jdk1.8+,同时配置idea默认maven路径为我们上述安装好的maven并配置好国内源。
- 导入idea
打开idea导入克隆下来的项目
- maven依赖安装
右键根目录的pom.xml,maven->reimport
- 导入数据
打开我们的数据库设计工具(pdman)下载地址。
导入项目(_doc/pdman/tacomall.pdman.json)->配置数据库->运行导入mysql
初始化了数据库后,为了有数据展示,我们提供了一个简易的京东爬虫程序用于初始化数据库数据
- 修改数据库配置
在每个服务项目中(src/main/resources/application-dev.yml)修改相应的数据库配置。
- 运行服务
项目中有许多微服务,眼花缭乱的你不用惊慌,其实每个服务的启动方式和springboot是一样的,只不过是我们需要注意启动顺序。
为了快速看见效果,在保证启动tacomall-eureka,monitor下,只需启动tacomall-service/service-member,tacomall-service/service-op和api/api-portal
看到这里,我们认为你已经正确配置启动项目了,接下来你将通过postman看到实际效果。
通过tacomall-uniapp登录页调用接口更加哟 :-)
http://localhost:4000/portal/member/wxMaLogin
我们提供了docker容器化部署方案,详情请查看部署,但并不意味着你不得不选择docker部署,你仍然可以自由选择你喜欢的部署方式进行部署。
项目中使用到以下框架(不限于)
框架 | 说明 |
---|---|
docker | 提供服务容器部署 |
mycat | mysql中间件 |
nacos | 服务配置与发现 |
seata | 分布式事务协调 |
spring cloud | 整体提供微服务解决方案 |
springboot | 提供web服务功能 |
mybatis-plus | 提供简化的数据库操作接口 |
dynamic-datasource-spring-boot-starter | 多数据源解决方案 |
lock4j-spring-boot-starter | 分布式锁解决方案 |
jobs-spring-boot-starter | 分布式任务调度解决方案 |
springfox-swagger2 | 接口文档 |
weixin-java-miniapp | 小程序sdk |
每个版本的发布我们将在RELEASE.md记录跟踪。
项目在Apache License 2.0下自由使用。