现有问题

历史

艺龙网h5酒店业务线自成立到现在,经历了几番较大调整,部分技术人员也是从.net转到java,由于技术人员的资历和公司对业务进度的追求,导致技术严重落后。

线上问题层出不穷,例如:线上抛出异常,redis宕机,tomcat宕机,qps过高导致响应问题,代码质量差导致模块加载速度差等等。

压力分析

项目由于业务性质问题,流量多集中于周五,周六,以及个节假日。qps常态为400——500,流量高峰为800——1500。流量不是惊的吓人,但却迫切需要高可用性。

用户行为多以查询为主,真正到支付成单的量要少一些。所以,在集群部署上支付平台要比h5后端少5倍。

待解决问题

由于用户查询行为要多于事务行为,所以要想真正为后端减轻压力,合理并多多使用缓存。目前项目中虽然集成并使用了redis,但是并未对页面的数据接口做拆分分析,没有真正的用起缓存服务。另外,从页面请求静态资源的304码来看,似乎使用了cache-control,但是对后端接口每一个都为真实请求(并没有在后端数据不发生变化的时候走缓存),可以断定页面上静态资源的缓存为cdn缓存起的作用。再加上每一个请求都为https,在高请求下,速度怎么能快起来。

现有架构

elong现有的架构是存在一定问题的,比如,上面所说到的缓存使用问题,通过监控系统观察到nginx负载不均衡问题(在高请求量下,tomcat集群环境,明显受中不均),甚至更没有timeout  设置  nginx——》tomcat(每次tomcat宕机,都需要运维手动踢出),tomcat裸跑,还有无法容忍的就是项目臃肿至极(几个业务线耦合在一起)。

初做调整

在有限的时间内和条件下,首先做了代码级别的优化(之前的文章有,不再赘述)。

后来为了摒弃掉项目的不断臃肿,我初步决定按渠道进行垂直拆分,之后分成了wxqb(微信钱包)、wxxcx(微信小程序)、hotelfx(酒店分销其他渠道),这样做各部分代码业务不但清晰起来,更可以分开部署从而把流量分开,按照流量制定集群机器数量。

另外,像tomcat也做了初步的调优,主要有线程连接池,最大连接数,nio模型,ddos流量预防等等。当然,jvm调优也做了一些,调整了内存空间和分代垃圾回收策略。

架构希望

理想状态下,希望平台业务可以向后端下沉,客户端直接有mapi提供服务,而各服务要彻底垂直切分成,首页服务,列表页服务,详情页服务,支付平台,订单平台等等。

这单独抽离拆分后,更加节省服务器,更容易针对业务特点做优化。而且,通信层也更少了,避免了网络耗时。

最好在,前端有一个前端静态数据系统,可以利用lua或者是node.js去把一些常规数据之间返回,这样一方面屏蔽了java系统支持网络通信的耗时,另一方面也会吸收掉部分流量,从而使得性能真正的提高起来。

通讯协议方面,我们现在的系统级别交互普遍还是http协议,我们都知道http为短链接,一次请求完成后就会断开,所以,要利用tcp封装一套rpc的通讯框架,可以选择诸如protobuf、kryo、fst等高效序列化方式。或者直接使用开源的,像dubbo、motan rpc等等。配合zookeeper项目的管理,注册发布,轮询调用等等,更是提高了性能,可用性和可扩展性。

docker管理部署是一个高可用的互联网项目必不可少的,一个动态的虚拟容器,可以带着整套环境动态的部署项目。它给微服务管理提供了更便捷的运维方式,甚至可以配合脚本语言做弹性计算的部署。

大数据平台是大型互联网项目的标配,主要作用在于收集用户日志,分析用户行为,生成响应的业务报表,从而制定出更符合用户口味的活动和产品。

艺龙h5酒店业务架构问题以及调优策略相关推荐

  1. python爬虫爬取艺龙国际酒店信息

    项目需要用到数据,在网上找了好久的数据都没有结果,就自己写了爬虫.没咋写过程序,为了简单都没有用函数.中间遇见了不少问题,首先爬虫只能爬取前十条信息.为了解决这个问题,上网搜了一些信息.网上说动态网页 ...

  2. 获取同程(艺龙)酒店数据

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标主页:aHR0cHM6 ...

  3. 解读 Service Mesh 的实现方式与同程艺龙的具体实践

    当互联网架构面临数据量,高并发.高可用场景几何增长的情况,Service Mesh 可以在其中发挥什么样的作用?什么样的场景适合使用 Service Mesh?如果有需要使用,又将如何来实现 Serv ...

  4. 靠腾讯光速上位,但同程艺龙可不能忘了“练内功”

    提到小程序,相信大家都不会陌生.2018年开始,越来越多的小程序占据了人们的生活,从微信小程序,到百度小程序,再到支付宝小程序.今日头条小程序,可以说,在小程序领地上国内几乎聚齐了业内公认的几个超级流 ...

  5. 艺龙私有化,携程与腾讯眉来眼去

    艺龙宣布,董事会收到腾讯控股的私有化要约,将以18美元的价格以收购艺龙发行的除了携程.铂涛和腾讯等艺龙股东外的全部流通股.如果这个交易能够完成,艺龙将完成私有化从美国纳斯达克股票市场退市,然后寻求在国 ...

  6. 透过同程艺龙财报看OTA的2021:复苏潮下行业或迎新一轮角逐赛

    步入5月,OTA平台又到了新一季财报比拼的时候.继国际在线旅游巨头booking.Expedia之后,同程艺龙率先打响了国内OTA平台财报公布第一枪,于5月17日港股盘后对外公布了新一季财报. 数据显 ...

  7. 后疫情时代,藏在同程艺龙财报里的“增长密码”

    股神巴菲特有句名言:当大潮褪去,才知道谁在裸泳. 这句话之所以被推崇,是因为大部分的情况下,大多数企业是随着行业水涨船高.唯有潮水退去,才能真正看清楚一家公司的实力. 8月23日,国内在线旅游头部企业 ...

  8. 准备上市的同程艺龙要“依葫芦画瓢”做AI,恐怕只是个幌子

    文 |魏启扬 来源 | 智能相对论(ID:aixdlun) 同程艺龙马上就要赴港上市了,它最新发布的招股书主要说了两件事. 一件是"我很赚钱".截至2018年6月30日,同程及艺龙 ...

  9. 降级预案在同程艺龙的工程实践【含ppt下载】

    在 QCon 北京 2019 大会上,王俊翔讲师做了<降级预案在同程艺龙的工程实践>主题演讲,主要内容如下. 演讲简介: 现代分布式系统设计中,面向容错.降级熔断设计是常规的.不可或缺的功 ...

最新文章

  1. 解决navicate 连接mysql数据库中文乱码的问题
  2. OpenCV实现视频人脸检测
  3. 使用 Nginx 提升网站访问速度
  4. maven关联oracle,maven添加oracle jdbc依赖
  5. Spring3+Struts2+Hibernate4+Mybatis整合的一个maven例子
  6. Springboot整合RabbitMQ,包含direct,topic,fanout三种模式的整合
  7. 常用liunx / mysql命令
  8. python做计量经济学的书籍_《计量经济学》教材书单
  9. c#代码转python代码工具_C# 代码转换到Python
  10. 联邦学习:FedProx框架
  11. java计算机毕业设计教师科研成果管理源码+mysql数据库+系统+lw文档+部署
  12. qsnctf queen wp
  13. 剑指offer(51-59题)详解
  14. 【文智背后的奥秘】系列篇——情感分类
  15. 手写简单的HashMap(jdk1.7)
  16. 详解科大讯飞语音识别
  17. SPI的读写GT21L字库芯片
  18. 红杉观点|生成式AI:一个创造性的新世界
  19. mysql的1055以及group by和order by
  20. linux系统derpin和ubuntu,如何在Ubuntu上安装Deepin桌面环境

热门文章

  1. ENET(四)enet_protocol_send_acknowledgements
  2. 基于STC89C52单片机的远程控制系统
  3. 步态能量图 matlab,【计算机视觉】步态能量图GEI
  4. c语言用average函数计算平均成绩,在excel中-Excel中,求平均值用Average函数;它可分用快捷键求平均值...
  5. STM32移植μC/OS-II操作系统
  6. MySQL SSL安全解读
  7. Java / JavaScript 用正则表达式去匹配代码中的单行注释,用以查找或删除注释。
  8. gimp的中文化,汉化安装
  9. VMware9 安装提示The MSI '' failed
  10. 浅蓝色在html,浅蓝色HTML5宽屏大气企业模板