【无标题】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、酒旅项目介绍
  • 二、开发步骤
    • 1.开发流程
    • 2.学到的东西
  • 总结



一、酒旅项目介绍

酒旅项目是制作小程序app客户端提供了线上预定酒店和旅游产品的线上产品,可以提高用户寻找目标酒店和房间的效率,提供了更好的服务和售后。

二、开发步骤

1.开发流程

1.用户在客户端发起请求,进行DNS(Domain Name System域名服务器)解析,其中包括WAF(Web Application Firewall)、CDN(Content Distribution Network内容分发网络)、防火墙。

【无标题】_第1张图片
2.再通过Nginx集群反向代理到Spring5.0之后添加的Webflux网关,通过SpringCloud Gateway进行动态路由指定Predicate(断言)和Filter(过滤器)寻址与Sentinel+Shard进行认证授权和令牌限流,中间还可以整合Redis。

【无标题】_第2张图片
3.另一方面还可以同时与Nacos合作为它提供监控报警和日志,集成服务注册发现功能,Nacos集群在整个架构中都能提供服务注册发现与动态配置和配置管理功能,整合SpringBoot Admin进行服务监控。

【无标题】_第3张图片
4.同时Gateway可以通过Ribbon进行负载均衡、Sentinel熔断降级和业务集群建立桥梁,形成联系,先是通过SpringSecurity框架与OAuth2认证中心整合JWT进行公钥私钥的颁发授权与相应验签认证功能。

【无标题】_第4张图片
5.SpringBoot应用在业务集群中通过OpenFeign进行相互调用,中间还整合Redis、Mysql、MQ、ES、OSS、JOB等工具,其中Redis集群可以用来做分布式数据缓存,Mysql主从复制进行数据的持久化,RabbitMQ进行系统解耦削峰填谷异步调用,ES全文搜索引擎整合Kibana、Logstash进行近乎实时搜索、分析和可视化的全文检索,使用阿里云OSS云存储服务进行对象存储、企业数据管理,使用xxl-job进行分布式任务调度。

【无标题】_第5张图片
6.业务集群还与分布式相挂钩,有着分布式主键,分布式锁,分布式事务,其中有两个理论,一个是CAP(分别是Consistency一致性、Availability可用性、Partitiontolerance 分区容错性)理论(这三个要素最多只能同时实现两点,不可能三者兼顾),一个是BASE(Basically Available基本可用、Soft State软状态、Eventual Consistency最终一致性)理论(即使无法做到强一致性,CAP的核心就是强一致性,但应用可以采用适合的方式达到最终一致性)。

【无标题】_第6张图片
7.日志收集通过Beats、ELK、和Kafka整和完成,具体过程是这样的:Beats用于日志数据采集使用,Logstash收集日志,发送给Kafka进行解耦、异步处理和流量削峰,然后通过Elasticsearch集群存储日志数据,索引日志数据,再通过Kibana视图形式展现日志信息,更加人性化地在客户端进行检索以及相关操作。

【无标题】_第7张图片
8.以Skywalking为核心的运维监控中心可用提供链路追踪和监控报警机制,与运维报警系统Prometheus结合Grafana最终和Alertmanager通过短信、微信或者邮件的形式给模块负责人发送警告通知。

【无标题】_第8张图片
9.最后Developer将代码文件上传到GitHub上通过docker容器部署,使用K8s AP对资源进行编排,管理应用的全生命周期,同时也提高发布与更新版本的效率,然后通过Jenkins Pipeline进行整个构建、测试、交付等持续集成,运维人员继续对这些进行维护。


2.学到的东西

我们队伍做的时候页面的搜索模块,负责价格、星级、地点范围等枚举设计。我们组最终设计的数据库表如下:

【无标题】_第9张图片
设计的api如下:

【无标题】_第10张图片
一、前端模块
前端的酒店搜索模块:

【无标题】_第11张图片
2.获取枚举列表:
【无标题】_第12张图片
二、后端模块
1.添加枚举

【无标题】_第13张图片
2.修改枚举
【无标题】_第14张图片
3.删除枚举
【无标题】_第15张图片
4.查询枚举

【无标题】_第16张图片


总结

对前端小程序,app设计有一定的认识,对vue、uniapp等前端的框架有了新的认识。

对数据库和api以及代码设计的规范和对于协同开发解决冲突有了一定的了解,对于以后去公司有很大帮助,师哥还带着大家学习背诵面试题,也对我们以后面试的帮助特别大,非常感谢这次真项目的机会,学习到了很多东西,并且认识了很多志同道合的朋友,通过这次镇项目我明白了我还有很多东西要学习,天外有天,人外有人,希望不断持续学习,做更好的自己。

你可能感兴趣的:(java,分布式,开发语言,架构)