酒旅项目

218 阅读3分钟

项目简介

互联酒旅项目依托微信小程序和app客户端为用户提供线上预定酒店和旅游产品的互联网产品。项目基于前后端分离架构,前端基于uniapp开发,后端使用Spring Cloud微服务架构。

项目流程

CSDN_1651655655546.jpg

项目架构

技术架构

CSDN_1651655595377.jpg

  • 请求DNS解析中(包括了WAF、CDN、防火墙)
  • 进入nginx集群(作用:反向代理与虚拟主机)
  • 由nginx集群进入到Webflus网关 ,作用:↓
    • 通过SpringClousGetway网关中的Predicate(断言)、Filter(过滤)
    • Sentinel+Shard(认证+令牌限流)、中间还可以整合Redis来实现令牌限流(请求限制)
    • 结合nacos进行动态配置、服务注册发现、监控报警、日志。
  • Webflus网关由Ribbon(负载均衡)和Sentinel(熔断降级)链接业务集群,业务集群作用:
    • 先通过SpringSecurity框架也OAth2认证中心整合JWT进行公钥私钥的颁发授权与相应验签认证功能。
    • SpringBoot在业务集群中通过openFeign来进行业务集群间业务的调用
    • 整合Redis:分布式缓存
    • 整合MySQL:持久化操作
    • 整合RabbitMQ:异步调用
    • 整合ES:全文索引
    • 整合OSS:阿里云OSS云存储服务
    • 整合JOB:xx-job进行分布式任务调度
    • 整合kibana、logstash ... ... 等
  • 业务集群使用分布式有
    • 分布式主键
    • 分布式锁
    • 分布式事务
    • 分布式事务采用CAP和Base定理
  • 日志收集使用下
    • 通过Beats:数据采集器
    • 进入Logstash:实时数据传输与过滤
    • 进入Kafka:分布式发布订阅消息
    • 进入ElasticSearch:全文搜索引擎
    • 进入Kibana:可视化管理ElasticSearch
  • 以Skywalking为核心的运维监控中心可用提供链路追踪和监控报警机制,与运维报警系统Prometheus结合Grafana最终和Alertmanager通过短信、微信或者邮件的形式给模块负责人发送警告通知。
  • 最后Developer将代码文件上传到GitHub上通过docker容器部署,使用K8s AP对资源进行编排,管理应用的全生命周期,同时也提高发布与更新版本的效率,然后通过Jenkins Pipeline进行整个构建、测试、交付等持续集成,运维人员继续对这些进行维护。

工程结构

CSDN_1651655672478.jpg

数据库设计

image.png

使用工具:chiner

API设计

image.png

使用工具:APIPost

项目编码

image.png

项目结构

  • hotel—common 工具类及通用代码模块
  • hotel—mbg—plus MyBatisGenerator生成的数据库操作代码模块
  • hotel—auth 基于Spring Security Oauth2.0的统一认证中心
  • hotel-gateway 基于Spring Cloud Gateway的API网关服务
  • hotel—monitor 基于Spring Boot Admin的监控中心服务
  • hotel—search 基于Elastic的搜索系统服务
  • hotel—config 配置中心服务
  • hotel—admin 后台管理系统
  • hotel—portal 门户网站服务

项目心得

  • 学习了整个项目的流程。
    • 项目流程梳理
    • 需求分析
    • 数据库设计
    • API设计
    • 代码编程
    • 代码优化
    • 项目部署
    • 项目总结
  • 学会使用Git仓库,进行代码管理
  • 针对代码优化
    • if语句直接返回,避免多次循环
    • controller层不做业务处理,业务处理放在service层
    • 命名规范(见名知意)
    • 不使用try-catch
    • VO DAO 大写
    • 规范注释
    • hutool工具的使用
  • 容器部署
  • API接口管理
  • 其他工具使用
  • 团队协作