4 Star 7 Fork 3

改变 / zlp-shop

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

SHOP

前言

  shop为搭建一套微服务框架平台,从 前端模板 - 基础框架 - 分布式架构 - 分布式配置中心 - 自动化部署 - 系统监测 - 无缝升级 的全方位微服务高并发解决方案。

项目介绍

  该项目"基于SpringCloud2.x+SpringBoot2.0+Mybatis微服务敏捷开发系统架构,配置中心采用Apollo分布式配置中心,网关安全采用SpringCloud-Zuul网关框架管理服务请求入口,保证服务RPC安全,SSO单点登入,提供整套公共微服务服务模块:商品管理、聚合支付平台中心、会员管理、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪搭建微服务电商项目。

组织结构

shop
├── zlp-shop-parent -- 公共Pranet接口
     ├── zlp-shop-basics --分布式基础设施
         ├── zlp-shop-basics-eureka—注册中心 
         ├── zlp-shop-basics-zuul—统一请求入口 
         ├── zlp-shop-basics-xxljob—分布式任务调度平台
         ├── zlp-shop-basics-lcn—分布式事务解决框架
         ├── zlp-shop-basics-ZipKin  —分布式调用链系统
         
     ├── zlp-shop-service-api提供公共接口
         ├── zlp-shop-service-api-weixin 微信服务接口
         ├── zlp-shop-service-api-member会员服务接口
         ├── zlp-shop-service-api-sso  sso服务接口
         ├── zlp-shop-service-api-item商品服务接口
         ├── zlp-shop-service-api-search 搜索服务接口
         ├── zlp-shop-service-api-pay聚合支付平台
         ├── zlp-shop-service-api-spike 秒杀服务接口
       
     ├── zlp-shop-service-impl公共接口的实现
         ├── zlp-shop-service-weixin 微信服务接口实现
         ├── zlp-shop-service-member会员服务接口实现
         ├── zlp-shop-service-api-sso  sso服务接口实现
         ├── zlp-shop-service-tem商品服务接口实现
         ├── zlp-shop-service-search 搜索服务接口实现
         ├── zlp-shop-service-pay聚合支付平台接口实现
     
     ├── zlp-shop-common 工具类
         ├── zlp-shop-common-core—核心工具类
         ├── zlp-shop-common-web-coreweb核心工具类
         
     ├── zlp-shop-portal 门户平台
         ├── zlp-shop-portal-web 门户网站 
         ├── zlp-shop-portal-sso 单点登陆系统 
         ├── zlp-shop-portal-search 搜索系统
         ├── zlp-shop-portal-spike 秒杀系统
         ├── zlp-shop-portal-cms 系统 
        

技术选型

后端技术:

技术 说明 官网
SpringBoot2.x 快速搭建框架 https://spring.io/projects/spring-boot/
SpringCloud2.x 微服务框架 https://spring.io/projects/spring-cloud/https://spring.io/projects/spring-cloud
Spring 容器 http://projects.spring.io/spring-framework/
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
Zuul 服务网关 http://cloud.spring.io/spring-cloud-static/Edgware.SR3/multi/multi__router_and_filter_zuul.html
Spring session 分布式Session管理 http://projects.spring.io/spring-session/
Ribbon 实现本地负载均衡器
Hystrix 服务保护框架(服务降级、隔离、熔断、限流)
RabbitMQ 中间件 https://www.rabbitmq.com/
Kafka 中间件 http://kafka.apache.org/
CAS+JWT+Oauth2.0 安全框架 https://oauth.net/2/
MyBatis Generator 代码生成 http://www.mybatis.org/generator/index.html
PageHelper MyBatis物理分页插件 http://git.oschina.net/free/Mybatis_PageHelper
Druid 数据库连接池 https://github.com/alibaba/druid
Apollo 分布式配置中心 https://github.com/ctripcorp/apollo/
Thymeleaf 模板引擎 http://www.thymeleaf.org/
xxl-job 分布式调度框架 https://github.com/xuxueli/xxl-job/releases
Redis 分布式缓存数据库 https://redis.io/
Elasticsearch 分布式全文搜索引擎 https://www.elastic.co// )
Quartz 作业调度框架 http://www.quartz-scheduler.org/
Log4J 日志组件 http://logging.apache.org/log4j/1.2/
Swagger2 接口测试框架 http://swagger.io/
AliOSS & Qiniu & QcloudCOS 云存储 https://www.aliyun.com/product/oss/ http://www.qiniu.com/ https://www.qcloud.com/product/cos
Jenkins 持续集成工具 https://jenkins.io/index.html
Maven 项目构建管理 http://maven.apache.org/
Netty-socketio 实时推送 https://github.com/mrniko/netty-socketio

前端技术:

技术 名称 官网
jQuery 函式库 http://jquery.com/
layui 字体图标 https://www.layui.com/doc/modules/layer.html#layer.close
zTree 树插件 http://www.treejs.cn/v3/
Select2 选择框插件 https://github.com/select2/select2
Editor.md Markdown编辑器 https://github.com/pandao/editor.md

架构图

拓扑图

模块介绍

zlp-shop-basics

分布式基础设施模块,包括注册中心(eureka)、统一网关入库(Zuul)、分布式任务调度平台(xxljob)、分布式事务解决框架(lcn)和分布式调用链系统(ZipKin)

zlp-shop-service-api

提供公共接口,其中包括了微信服务接口、会员服务接口、sso服务接口、商品服务接口、搜索服务接口、聚合支付平台、订单服务接口、秒杀服务接口

zlp-shop-service-impl

公共接口的实现类

zlp-shop-common

核心工具类,包括日志、异常、redis、日期等等

zlp-shop-portal

门户网站包括单点登入、搜索系统、秒杀系统、cms 系统 文件存储系统

  • 阿里云 OSS

服务网关,对外暴露统一规范的接口和包装响应结果,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,可在该模块支持验签、鉴权、路由、限流、监控、容错、日志等功能

分布式配置中心

Apollo

环境搭建

开发工具:

  • MySql: 数据库
  • Tomcat: 开发服务器|应用服务器
  • Git: 版本管理
  • Nginx: 反向代理服务器
  • Apollo: 分布式配置中心
  • IntelliJ IDEA|Eclipse: 开发IDE
  • PDMAN: 建模工具
  • Navicat|MySQL: 数据库客户端
  • Elasticsearch: 搜索引擎

开发环境:

  • Jdk8+
  • Mysql5.7+
  • Redis
  • SpringBoot2.0+
  • SpringCloud2.0+
  • RabbitMQ
  • Apollo
  • Elasticsearch

资源下载

开发指南:

  • 1、本机安装Jdk8、Mysql、Redis、Apollo、RabbitMQ启动相关服务,使用默认配置默认端口即可

编译流程

maven编译安装

启动顺序(后台)

准备工作

  • 新建shop数据库,导入shop-sql文件夹下的shop.sql

  • 修改各dao模块和rpc-service模块的redis.properties、jdbc.properties、generator.properties数据库连接等配置信息,其中master.redis.password、master.jdbc.password、slave.jdbc.password、generator.jdbc.password密码值使用了AES加密,请使用com.zheng.common.util.AESUtil工具类修改这些值

  • 启动Eureka、Redis、RabbitMQ、Nginx、

  • 部署工作请关注微公众号"给自己一个smile",后面有详细教程

框架规范约定

约定优于配置(convention over configuration),此框架约定了很多编程规范,下面一一列举:


- service类,需要在叫名`service`的包下,并以`Service`结尾,如`CmsArticleServiceImpl`

- controller类,需要在以`controller`结尾的包下,类名以Controller结尾,如`CmsArticleController.java`,并继承`BaseController`

- spring task类,需要在叫名`task`的包下,并以`Task`结尾,如`TestTask.java`

- mapper.xml,需要在名叫`mapper`的包下,并以`Mapper.xml`结尾,如`CmsArticleMapper.xml`

- mapper接口,需要在名叫`mapper`的包下,并以`Mapper`结尾,如`CmsArticleMapper.java`

演示地址

演示地址:待定......

预览图

待定......

数据模型

待定......

附件

优秀文章和博客

在线小工具

许可证

MIT

空文件

简介

该项目"基于SpringCloud2.x+SpringBoot2.0+Mybatis微服务敏捷开发系统架构,配置中心采用Apollo分布式配置中心,网关安全采用SpringCloud-Zuul网关框架管理服务请求入口,保证服务RPC安全,SSO单点登入,提供整套公共微服务服务模块:商品管理、聚合支付平台中心、会员管理、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪搭建微服务电商项目。 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/gaibianzlp/zlp-shop.git
git@gitee.com:gaibianzlp/zlp-shop.git
gaibianzlp
zlp-shop
zlp-shop
master

搜索帮助