栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

项目总结篇(酒旅)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

项目总结篇(酒旅)

目录

一、项目目标

1.针对用户

2.针对开发者

二、项目完成情况

1.初期时间计划

2.项目过程

2.1 熟悉产品

2.2 任务分配

2.3 数据库设计

2.4 接口设计

2.5 开始编码

三、项目技术栈

1.技术架构

​ 2.项目流程说明

四、微服务工程架构

五、项目结构

 


一、项目目标

1.针对用户
  • 提高了用户搜索酒店和预定酒店的效率
  • 售后功能保障了用户的合法权益
  • 基于数据分析提供给用户多需求场景的组合产品

2.针对开发者
  • 熟悉工作当中的工作流程
  • 巩固以前学习的知道,运用其中
  • 工程化实践

  • 提高技术视野

  • 整改代码规范等

二、项目完成情况

1.初期时间计划

2.项目过程

2.1 熟悉产品

时间:

开始时间:22-03-20

结束时间:22-03-25

要求:

每人整理一份文档,最后小组这整理出一个最终文档

个人收获:

刚开始很盲目,感觉功能很多很乱很杂,分析时抓不住重点,甚至不清楚那一块是大数据负责的。

2.2 任务分配

分配规则:按小组进行分配主要任务,最后再由小组细分到每位成员

小组任务:酒店房型

2.3 数据库设计

开始时间:22-03-25

结束时间:22-04-13

任务要求:

每人出一份设计方案,最后小组整合提价一份

参考文档

阿里开发手册:Java开发手册(黄山版)

个别字段根据开发需求而定

命名必须要见名知意

使用工具:

CHINER元数建模

个人方案

小组最终讨论方案:

收获:

学习数据库的设计规范

学习使用CHINER元数建模

知道了原来以前自己给字段命名就就跟闹着玩似的,

2.4 接口设计

时间:

开始时间:22-04-13

结束时间:22-04-20

任务分配:

个人任务:编辑房型、新增房型

使用工具:

以ApiPost为主

规范:

小驼峰

大致内容:

​​​​​​​

 

收获:

接口设计依旧是从零到一,起初对接口的认识只用 interface ,当时也是在网上找了好久什么是接口设计,最后在与组员的交流中晕了过来

2.5 开始编码

时间:

开始时间:22-04-20

结束时间:22-04-25

数据的处理使用mybatis-puls,文件的存储使用minio

代码规范:

 期间改了好多好多次,最终也算是半只juo踏入了正规军

实体类:

例如

 使用了lombok、swagger、mybatisplus,其中数据的逻辑删除使用mybatisplus的@TableLogic

DAO层

例如

其中要求DAO全大写(以前不知道), 

service接口层

例如

 首先是接口的命名,以I开头,继承IService

service实现类

 继承serviceimpl,泛型为dao和实体类,实现service接口

注意事项:

  • 所有的业务逻辑,异常处理都在service。
  • 重写所需要的mybatispuls的方法,然后在service实现类实现,使用this调用。
  • mybatisplus统一使用lambda表达式。
  • 非空判断不准使用 if(!=null)
    • 集合使用:if(CollUtil.isNotEmpty())
    • 实体类使用: if(ObjectUtil.isNotEmpty()){
  • 尽可能减少甚至不要出现多层嵌套的代码
  • 必须要有方法注解说明

controller层

注意事项:

  • 不准有业务逻辑,全放到service层
  • 不准出现多层嵌套
  • 不准出现if else 代码,service层返回true,解决else
  • 不准出现try  catch,service层处理异常
  • url不准出现驼峰
  • 必须要有方法注解说明

收获:

minio是使用,mybatispuls的使用,代码规范,业务逻辑

三、项目技术栈

1.技术架构

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

四、微服务工程架构

五、项目结构

六、项目心得
  1. 认识了项目的工作流程
  2. 以前所学的知识得到了真正的使用:gitee、mybatisplus等
  3. 代码规划,数据库设计,api设计有了真正的认识
  4. 增加了团队协作能力
  5. 等 ... ...

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853652.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号