旅游网站项目全栈 ,其中技术栈:
后端方面-
基于mysql+MyBatisPlus实现数据结构化与对象映射,springboot3.2.5完成单个业务模块,springcloud完成多个服务模块到网关的合并结合nacos注册中心实现服务间的负载均衡与热部署功能;使用feign实现远程调用;gateway网关实现身份与权限校验以及服务路由;caffeine实现高性能本地缓存;使用RabbitMQ消息队列结合redis缓存技术实现流量削峰,数据库减压以提升用户体验;使用elasticSearch搜索引擎实现对数据库的倒排索引以支持海量数据下的快速,灵活查找,分析,计算功能-采用docker容器化部署,并对mysql数据库的改动使用消息队列,canel等绑定elasticSearch以及redis缓存同步;openresty实现nginx反向代理及多级缓存以对jvm减轻依赖和负载压力,存swagger+jemeter实现单元测试。
前端方面-使用vue3框架完成,使用verlet,阿里巴巴,ElementPlusUI支持,Pinia作为状态管理库。
其他相关基础功能支持: ollama2 chinese中文本地聊天模型, spring ai框架支持,easy excel, apache开源pdf
套打,邮件发送。
设计参考::同类国际流行产品-爱彼迎技术相关博客The Airbnb Tech Blog – Medium
对于 jvm默认锁的非分布式安全问题,我采用redssion分布式可多次进入锁避免不同jvm用进程同时使用操作同一业务敏感数据,同时对锁进行逻辑时间控制防止死锁发生。
对于数据增长问题我采用集群式数据库加云上存储技术,分布式部署redis集群确保其集群模式能够及时诊断故障并迅速响应选举,并实施定时健壮性检查。
对于系统的业务健壮性,效能性问题我使用异步处理和消息队列流量削峰,负载均衡技术加快响应时间,并通过使用OPENRESTY技术部署nginx以实现将改动频率小的数据在到达TomCat之前获得数据返回渲染以最大化数据交付效率以及对jvm减轻压力。其中我使用lua语言进行调度控制并对多个nginx进行部署以反向代理最后均衡转达到不同jvm