第一章 :JavaEE项目之“谷粒商城” ----项目简介
目录
- 第一章 :JavaEE项目之“谷粒商城” ----项目简介
- 1、项目背景
- (1)、电商模式
- (2)、谷粒商城
- 2、项目架构图
- 3、微服务划分图
- 4、项目技术&特色
- 5、项目前置要求
1、项目背景
(1)、电商模式
1、市面上有5种常见的电商模式 B2B、B2C、C2B、C2C、O2O;
本项目属于B2C模式
B2C (Business to Consumer),就是我们经常看到的供应商直接把商品卖给用户,即“商对客”模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。如:苏宁易购、京东、天猫、小米商城。
(2)、谷粒商城
谷粒商城是一个B2C模式的电商平台,销售自营商品给客户。
2、项目架构图
- 整个项目前后端分离开发,分为内网部署和外网部署
- 外网部署:面向公众访问的部署前端项目;(App,web网站);使用客户端来完成相应的功能;如登陆、注册都需要通过客户端向后台服务发送请求;
- 内网部署:整个后台服务集群
- 网关(SpringCloud Gateway):任意客户端发送请求到Nginx集群,Nginx集群先发送到API网关,然后网关根据当前请求动态路由到指定的服务(如果有多个服务,网关还可以负载均衡去调用服务;如果某些服务有问题,还可以在网关对服务进行统一的熔断降级(SpringCloud Alibaba Sentinel));网关还可以进行认证授权验证请求是否合法再放行;还可以进行限流,限制瞬时流量
- 微服务(SpringBoot):服务之间还可以互相调用,使用SpringCloud Feign组件;有些请求只有登陆后才可以处理,使用OAuth2.0认证中心;整个整个认证过程的安全与权限控制使用SpringSecurity;
- 数据持久化(MySQL集群):可以写成读写分离,也可以分库分表
- 缓存(Redis集群):Sentinel哨兵集群+shard分片集群
- 服务与服务之间使用消息队列(RabbitMQ集群):进行异步结构,包括完成分布式事务的最终一致性;
- 全文检索(ElasticSearch):检索商品信息等;
- 对象存储(阿里云OSS对象存储服务)
- 项目上线以后为了快速定位项目中可能出现的一些问题,使用ELK来对日志进行处理;使用LogStash来收集业务处理中产生的各种日志,存储到ES中,再使用Kibana可视化界面从ES中检索出相关日志信息,快速定位线上问题所在。
- 注册中心(SpringCloud Alibaba Nacos):为了定位各个服务的位置,将所有服务都注册到服务中心,其他服务可以从注册中心发现所需服务所在位置。
- 配置中心(SpringCloud Alibaba Nacos):每一个服务的配置众多,实现集中管理这些配置,所有服务都可以从配置中心自动获取到自己的配置。
- 服务追踪(SpringCloud Sleuth+Zipkin):如果服务调用服务的某个调用链出现问题,可以使用服务追踪来收集信息并交给开源的Prometheus来聚合分析,再由Grafana进行可视化展示;并可以通过Prometheus提供的Altermanager实时得到某些服务的告警信息
- 提供持续集成/持续部署(CI/CD):开发人员可以通过持续集成将修改后的代码发布到Github;运维人员可以通过自动化工具JenKins从Github上获取到代码并打包成Docker镜像,最终使用K8S来继承整个Docker服务,将服务以Docker容器的方式来运行。
3、微服务划分图
4、项目技术&特色
- 前后端分离开发,并开发基于vue的后台管理系统
- SpringCloud全新的解决方案
- 应用监控、限流、网关、熔断降级的分布式方案,全方位涉及
- 透彻讲解分布式事务、分布式锁等分布式系统的难点
- 分析高并发场景的编码方式,线程池,异步编排等使用
- 压力测试与性能优化
- 各种集群技术的区别以及使用
- CI/CD使用
5、项目前置要求
学习项目的前置知识
- 熟悉SpringBoot以及常见的整合方案
- 了解SpringCloud
- 熟悉Git,maven
- 熟悉linux,redis,docker基本操作
- 了解html,css,js,vue
- 熟练使用idea开发项目