【Java知识点】开源项目 onemall 基于微服务的思想,构建在电商的项目实战

前言

基于微服务的思想,构建在 B2C 电商场景下的项目实战。

  • 「Talk is cheap. Show me the code」
  • 这会是一个认真做的业务开源项目,目前 Java 代码 2w+ 行,不包括注释的情况下。
  • 整体的功能如下图
  • 【Java知识点】开源项目 onemall 基于微服务的思想,构建在电商的项目实战_第1张图片
  • 功能列表 - H5 商城
  • 功能列表 - 管理后台
  • 我们迫切希望更多的参与进来,可以加入「交流群」,【193086273】,一起进来交流吧。群里还会有java的免费资料,免费视频可以供你们学习。等你哟~

     

  • 近期计划

    近期准备开发如下功能:

  • 微信 H5 网页登陆 @To0R
  • 订单评价 @wang171776704
  • 商品品牌 @黑子
  • 短信接入 @小范
  • 访问日志、错误日志接入
  • 会员资料 @nengjie
  • 拼团购买 @大太阳
  • 部门管理 @Tprotect曦
  •  

  • 演示

    H5 商城

    体验传送门

  • 演示:https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-h5-min.gif
  • 管理后台

    体验传送门

  • 账号:yudaoyuanma
  • 密码:yudaoyuanma
  • 演示:https://raw.githubusercontent.com/YunaiV/Blog/master/Mall/onemall-admin-min.gif
  • 其它演示

    下面,我们会提供目前用到的中间件的管理平台。

    SkyWalking UI

  • 地址:http://skywalking-ui.shop.iocoder.cn:18099
  • 管理员账号:admin / admin
  • Grafana UI

  • 地址:http://grafana.shop.iocoder.cn:18099
  • 演示账号:yudaoyuanma / yudaoyuanma
  • 用于展示 Prometheus 收集的 Metrics 指标数据。
  • Dubbo Admin

  • 地址:http://dubbo-admin.shop.iocoder.cn:18099
  • 管理员账号:无需登陆
  • RocketMQ Console

  • 地址:http://rocketmq-console.shop.iocoder.cn:18099
  • 管理员账号:admin / RPsa2GHjTNs8pxEU
  • Sentinel Console

  • 地址:http://sentinel.shop.iocoder.cn:18099
  • 账号:sentinel / sentinel
  • XXL-Job Console

  • 地址:http://job-console.shop.iocoder.cn:18099
  • 管理员账号:admin / 233666
  • 技术

    搭建环境

    搭建调试环境

    架构图

    TODO 此处应有一个架构图的装逼 JPG 图。

    项目结构

    模块名称端口admin-web【前端】管理后台HTTP 8080mobile-web【前端】商城 H5HTTP 8000system-application管理员 HTTP 服务HTTP 18083接口文档user-application用户 HTTP 服务HTTP 18082接口文档product-application商品 HTTP 服务HTTP 18081接口文档pay-application支付 HTTP 服务HTTP 18084接口文档promotion-application促销 HTTP 服务HTTP 18085接口文档search-application搜索 HTTP 服务HTTP 18086接口文档order-application订单 HTTP 服务HTTP 18088接口文档


    后端项目,目前的项目结构如下:

    [-] xxx
     ├──[-] xxx-application // 提供对外 HTTP API 。
     ├──[-] xxx-service-api // 提供 Dubbo 服务 API 。
     ├──[-] xxx-service-impl // 提供 Dubbo 服务 Service 实现。
    

    考虑到大多数公司,无需拆分的特别细,并且过多 JVM 带来的服务器成本。所以目前的设定是:

  • xxx-service-impl 内嵌在 xxx-application 中运行。
  • MQ 消费者、定时器执行器,内嵌在 xxx-service-impl 中运行。
  • 也就是说,一个 xxx-application 启动后,该模块就完整启动了。

    技术栈

    后端

    框架说明版本Spring Boot应用开发框架2.1.4MySQL数据库服务器5.6DruidJDBC 连接池、监控组件1.1.16MyBatis数据持久层框架3.5.1MyBatis-PlusMybatis 增强工具包3.1.1Rediskey-value 数据库暂未引入,等压测后,部分模块RedissonRedis 客户端暂未引入,等压测后,部分模块Elasticsearch分布式搜索引擎6.7.1Dubbo分布式 RPC 服务框架2.7.1RocketMQ消息中间件4.3.2Seata分布式事务中间件0.5.1Zookeeper分布式系统协调3.4.9 作为注册中心XXL-Job分布式任务调度平台2.0.1springfox-swagger2API 文档2.9.2swagger-bootstrap-uiSwagger 增强 UI 实现1.9.3

    未来考虑引入

  • 配置中心 Nacos
  • 服务保障 Sentinel
  • 网关 Soul
  • 前端

    商城 H5 和管理后台,分别采用了 Vue 和 React ,基于其适合的场景考虑。具体的,可以看看 《为什么 React 比 Vue 更适合大型应用?》 的讨论。

    商城 H5

    框架说明版本VueJavaScript 框架2.5.17VantVue UI 组件库3.13.0

    管理后台

    框架说明版本ReactJavaScript 框架16.7.0Ant DesignReact UI 组件库3.13.0

    监控

    一般来说,监控会有三种方式:

  • 1、Tracing ,我们采用 Apache SkyWalking
  • 2、Logging ,我们采用 ELK
  • 3、Metrics ,我们采用 Prometheus
  • 框架说明版本SkyWalking分布式应用追踪系统6.0.0Prometheus服务监控体系2.9.2Alertmanager告警管理器0.17.0Grafana仪表盘和图形编辑器0.17.0

    其它

  • Jenkins 持续集成
  • Nginx 服务器
  • Docker 容器
  • Nginx
  • 某种结尾

  • 【Java知识点】开源项目 onemall 基于微服务的思想,构建在电商的项目实战_第2张图片
  • 我们迫切希望更多的参与进来,可以加入「交流群」,【193086273】,一起进来交流吧。群里还会有java的免费资料,免费视频可以供你们学习。等你哟~

你可能感兴趣的:(Java,Java,电商开源,GitHub,技术)