互联酒旅项目心得

一、项目架构图

架构图
项目采用分布式微服务的架构进行开发,具体流程如下:
1.用户通过客户端发送请求,经过DNS域名服务器解析,包括WAF(Web应用防护系统)、CDN(内容分发网络),防火墙,通过Nginx集群反向代理到WebFlux网关。
2.通过Spring Cloud Gateway进行动态路由的匹配,与sentinel+shard进行认证授权和令牌限流。
3.nacos进行服务的注册于发现与动态的配置管理功能,整合Spring Boot admin进行服务监控。
4.通过SpringSecurity框架与OAuth2认证中心整合JWT进行公钥私钥的颁发授权与相应验签认证功能。
5.通过OpenFeign进行服务相互调用,中间还整合Redis、Mysql、MQ、ES、OSS、JOB等工具,其中Redis集群可以用来做分布式数据缓存,Mysql主从复制进行数据的持久化,RabbitMQ进行系统解耦削峰填谷异步调用,ES全文搜索引擎整合Kibana、Logstash进行近乎实时搜索、分析和可视化的全文检索,使用阿里云OSS云存储服务进行对象存储
6.业务集群还与分布式挂钩,有分布式主键、分布式锁、分布式事务
7.日志收集通过Beats、ELK、和Kafka整和完成,具体过程是这样的:Beats用于日志数据采集使用,Logstash收集日志,发送给Kafka进行解耦、异步处理和流量削峰,然后通过Elasticsearch集群存储日志数据,索引日志数据,再通过Kibana视图形式展现日志信息,更加人性化地在客户端进行检索以及相关操作
8.以Skywalking为核心的运维监控中心可用提供链路追踪和监控报警机制,与运维报警系统Prometheus结合Grafana最终和Alertmanager通过短信、微信或者邮件的形式给模块负责人发送警告通知
9.最后在远程服务器通过docker容器部署上述微服务容器,使用K8s AP对资源进行编排,管理应用的全生命周期,同时也提高发布与更新版本的效率,然后通过Jenkins Pipeline进行整个构建、测试、交付等持续集成,运维人员继续对这些进行维护。

二、开发流程图

开发流程图

三、需求分析

在这一阶段,团队所有成员都对产品的流程进行需求分析,分析要实现的功能,拟出文档之后团队之间进行讨论,拟出各模块的需求文档。最终我分配到了酒店评论功能模块。

四、数据库设计

使用Chiner工具设计数据库
数据库设计
1.每张表格固定字段id、createTime、updateTime、deleted(逻辑删除)
2.每个字段尽量都保证非空约束和默认约束,保证数据的完整性
3.不得使用外键与级联,一切外键概念必须在应用层解决
4.对于文件上传功能,需要对于文件大小、类型进行严格检查和控制。
具体的参考阿里设计规范。

五、接口设计

使用ApiPost进行接口的设计
展示部分的接口:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
这一阶段与前端工程师对接功能接口,明确接口的入参和出参。

六、编码

编码阶段是耗时最长的阶段,在这一阶段花费了很长的时间。第一版代码是根据自己的方式去写的,队长搭建了一套基类工程,团队成员选择通过继承基类的方式编写代码。提交上去之后,基类的方式不是很符合整个团队的代码开发,于是重新拟定规范,全部采用Mybatis-plus中的API,所以整个团队代码全部推倒重来。
部分代码展示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过service层进行全部的业务处理包括数据的校验,controller层只做前后端交互的作用。项目采用Hutool包下的工具类对参数进行校验。对于文件的上传全部走文件上传微服务。

总结

互联酒旅项目的具体流程是严格按照大厂开发流程规范走的,很感谢有这么一次机会,通过这个项目的开发让我学习到了特别多的东西。不仅是关于技术方面的也有关于人情事故方面的,当然本质上也是技术方面的。团队中的大佬讲得一句话仍然让我记忆尤新。如果在团队中你能做到80分的水平,但是团队成员只能有40-50分的水平,那么你把从80分-90分所提升的时间用来帮助40-50分的成员提高到60-70分,会让整个团队的收益大大提高,而且当团队成员的技术上来之后,也可以跟你一起探讨80-90分之间的内容,这样对于你来说也能更好地提升。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值