1、管理后台前后端分离,前端使用iView admin框架(基于基于 Vue.js,搭配使用 iView UI 组件库形成的一套后台集成解决方案),后端使用ASP.NET Core API+SqlSugar ORM搭建Resultful接口。
2、日志模块(操作日志、登录日志、接口请求日志)采用MongoDB存储,首先生产者将日志信息存入Redis队列,消费者采用Work Services部署为linux守护进程运行,定时同步到MongoDB,方便分析。
3、PC和小程序前后端分离,PC端使用基于Vue.js的服务端渲染框架Nuxt.js,在快速方便开发的同时,也能做到网站SEO。后端使用JAVA语言开发,使用Spring Boot2和Mybatis Plus框架,集成Swagger提供给前端一套规范和完整的可视化RESTful风格的调试页面,提高前后端合作开发效率。
4、使用Autofac IOC容器实现接口和接口实现的注册,不再将类绑定在应用里,在类的构造方法中将依赖传递进去。
5、使用Memcached进行基础数据的缓存,在缓存击穿、穿透、雪崩方面提供有效的解决方案。
6、使用Guid(UUID)生成服务端Token令牌,用户登录成功后生成对应的Token令牌作为key存入Redis中,Redis中令牌对应的Value为UserId,有效期为7天,并将数据绑定到Action方法中。之前项目使用的是DES加解密或JWT方案。
7、购物车模块采用Redis的Hash结构实现,每晚定点进行数据同步,定时服务采用Windows 服务+Quartz.Net。
8、限时抢购模块采用Redis的队列实现,在预热期,将商品数据队列化,解决高并发超卖问题。
9、业务细化、解耦,使用RabbitMQ将业务分发到队列处理,提高接口响应速度。
10、数据库使用读写分离技术,按照业务模块进行分库,对于千万级及以上数据表进行分表处理。
11、集群部署,负载均衡使用阿里云SLB或Nginx。