原来预定系统是有通过Nginx负载多个基础接口和前端php网站组成,每当推文活动等流量大的时候,整体网站就会出现卡顿甚至挂掉;将接口端拆分为多个不同业务的微服务,例如,酒店查询,预订,订单,活动接口,会员接口等,
Web端也相应拆分多个应用,其中解决了单点登录和session共享问题;通过重构系统基本满足高可用,可伸缩性。
对单体应用酒店预订系统进行拆分,减小代码冲突,提升业务响应速度;减小系统的复杂度;提升系统可用性、伸缩性;避免重复建设。
开发环境: IDEA 、JDK1.8、 Git 、 Maven、Linux 、Jenkins
使用技术: Spring、SpringBoot、SpringCloud、MySQL、Redis、RocketMQ
1.参与系统重构的制定架构方案、系统设计。将系统拆分:酒店信息服务、预订服务、订单服务、会员服务、支付服务等。
2.重构登录模块,实现不同域名单点登录和session共享;以及安全性考虑如:登录密码通过RSA非对称方式加密、数据库密文存储用户密码等。
3.优化订单流程,通过工厂模式、门面模式等设计模式,满足代码的维护和扩展性;做好幂等性判断和重试机制,及业务补偿重试工具。通过定时任务方式将房态信息刷入Redis,避免酒店查询直接下数据库。
4.通过系统拆分,避免营销活动大流量涌入,导致日常核心业务卡顿,合理利用资源针对营销活动做临时性扩容,满足2000万会员的营销活动。