Easymall项目分布式拆分整合(一)
目录
一.内容详解
- 搭建parent工程
- 搭建common工程
- 搭建web前端工程
- 搭建product后台商品工程
- 完成后台商品工程与前端工程调用
二.Easymall项目拆分结构
1.单体项目缺点
- 功能的强耦合:开发单独的功能需要了解其他功能逻辑.
- 并发的集中:全部功能集中在一个系统,使得某些需要高并发和不需要高并发的功能不能单独处理并发压力
2.纵向拆分
2.1拆分的定义
根据单体项目中的各种功能单独维护一个系统,纵向拆分就是根据维护的不同业务逻辑独立形成的一个系统集群
1.前端系统:
给用户访问的系统(jsp页面,如果是html前端系统都可以不存在)
不需要访问数据库不需要访问redis,elasticsearch.所有的页面都在前端系统(product_info.jsp).
2.商品后台系统:
独立运行的web应用,没有页面,接收前端系统发起的请求,返回数据(前端系统和后台商品系统对接的接口文件),独立维护t_product表格数据相关的功能;
3.用户后台系统:
独立维护t_user表格数据的web应用
4.购物车系统:
独立维护t_cart表格数据的web应用
5.订单系统:
独立维护t_order t_order_item数据的web应用
6.秒杀后台集群:
消费端处理前端系统发送的用户秒杀信息,并发解决异步秒杀
7.搜索系统:
独立维护elasticsearch数据的访问,返回给前端使用;
多个系统间各种配置各种依赖各种公用类的支持使用maven
8.父工程:
公用的dependency在父工程中维护,统一的版本,还有一些插件可以由父工程统一管理
9.公用工程:
例如各个项目中MD5UTILS,COOKIEUTILS,VO(Page,SysResult,pojo)
2.2多个工程搭建的结构
2.3系统与系统间调用数据