本项目结构结构上分为接入层、service层和dao层,层级间的依赖关系从上到下。使用的技术有SpringBoot、Dubbo、Redis、RocketMq、ElasticSearch、xxl-job、Mybatis,MybatisPlus,Log4j,且采用了分库分表技术,业务层主要是封装业务流程,每一个模块都有其业务接口,业务的逻辑写在业务实现类里面,业务的处理细节以及对数据库的操作在另一个类里面处理,Service层只写业务流程,项目异常统一用aop里面的环绕通知来捕捉,前台页面读取的缓存数据全部使用的淘汰缓存,保证了数据的准确度,订单的搜索使用的elasticSearch,保证了查询的效率
首页模块:
负责小程序首页模块的开发工作,使用了j2cache、xxl-job定时没1分钟刷新一次缓存,首页数据结构比较复杂,使用了本地缓存避免了并发量大时反序列化频繁造成的内存溢出问题,目前首页单机最大能承受的并发量是10w
商品管理后台:
商品信息比较多,比较杂也比较长,使用了责任链模式对商品基础信息校验之后如果是新商品与库存模块交互对库存进行初始化,初始化完成后如果是对商品信息更新则删除商品缓存,否则将商品信息存入缓存
订单列表:
其实进入订单列表的时候访问最多的是第一页,我们将订单列表的第一页做缓存,其余的订单搜索交给es来处理,创建订单完成后会将订单数据写入es