张华杰,上海交通大学工程硕士,土巴兔技术中心技术总监,全面负责土巴兔的技术研发和运营团队。带领团队开发了多巴哥兔网站、设计本、APP、CRM、呼叫中心等系统。2014年加入土巴兔,主持并参与SOA基础设施体系结构、全网多轮高可用性增强和性能优化建设。

至于结构,我认为结构没有好坏之分,只有合适的才是好的。结构不是设计的,而是摔倒的。“东西有本末,事情有始有终,有先后,有接近度”,我来说说土巴兔网站结构的道理。

今天与大家沟通的结构之路,这个“道”其实包含两个意思。一个是多巴哥兔遗址结构的进化。第二个是我们在这段旅程中领悟到的一些思想。

我把多巴哥兔网站结构的演变分为三个阶段。

第一阶段

2008 ~ 2014年,关键词:灯,裸体。

土巴兔成立于2008年,最初基于非常简单的LAMP网站(Linux Apache MySQL PHP)。LAMP是开源技术,建设速度快,开发成本低。土巴兔做装修O2O,业务特点是线下业务复杂,流程长,变化快,业务和产品都需要不断地测试错误,技术需要迅速支撑。

到2014年,网站逐渐成为下图的体系结构。

简单来看,体系结构主要分为三层:代理层、web层和数据层。代理层主要进行负载平衡,web层为页面呈现向PHP处理请求,PHP进行数据访问、业务逻辑和页面显示。数据层我们也创建了数据库高可用性。例如,MySQL的双主多从属程序的体系结构具有极高的操作和维护成本。当时有一名运维,20多名工程师。

随着业务的发展,C轮融资、团队的迅速扩张、各种业务代码(网站或CRM)被主站堵住了。这些结构有以下明显的问题:

第一,性能问题。整个网站上的每个请求都直接渗透到没有系统缓存系统的数据库中。例如,在CRM背景下的项目查询页面上,需要一分钟以上的时间是司空见惯的事情,会严重影响生产率。

第二,可用性问题。由于代码和数据的紧密结合,任何数据库的缓慢查询都会堵塞PHP进程,PHP进程迅速积累,最终扩散到上层,导致整个网站无法打开,从而导致雪崩。

第三,安全问题。我们的网站几乎裸奔在安全防御上,事实也证明了问题的严重性。此后,2015年Toba兔在业界逐渐崭露头角,行业内竞争对手的恶意攻击(如DDoS、CC攻击)、乌云等第三方网站暴露出的安全漏洞(如SQL注入、XSS网站脚本)。这些都对网站安全提出了巨大的挑战。

当时我们机房在广州,但有时遭到攻击,网站无法打开。IDC室的服务质量也比较差,更严重的问题不仅是我们受到攻击,当同一机房的其他网站受到攻击时,我们也会受到牵连。有句谚语说著名的猪害怕发胖,当时的技术现状可以说是内忧外患。

最后,可维护性差,开发效率低。代码和数据的严重结合,如果业务需要改变一个流程或规则,那么就要从头到尾,全链、大规模地改变代码。(威廉莎士比亚、代码、代码、数据、数据、数据、数据、数据、数据)维护成本随着业务数量的增长呈指数级增长。直到今天,整个web层的代码仍然具有很高的结合性。

2014年下半年,我刚加入多巴哥兔,面对这种粗制滥造的裸奔。我们意识到要用双手准备。首先穿内裤保护重要部位,其次穿外套防止冬天。

第二阶段

2014 ~ 2016年上半年,关键词:SOA,强化。

具体地说,我们主要做了这几件事。

首先是组建Java后台团队,构建Java体系结构体系结构,构建新的CRM系统,保护核心数据。

CRM是多巴哥兔背后的生产系统,与顾客服务、订单系统对京东的重要性一样,直接影响业务链的生产力。SOA收购了CRM的核心业务,全面优化了CRM数据查询性能。

首先要解开数据库。引入搜索引擎Elasticsearch,将复杂的表查询全部发送到业务逻辑层和Elasticsearch。这种改造是基础的,很重要。因为只有数据库稳定,上层业务才不会中断。

SOA化后,无论查询多么复杂,新CRM页面的响应时间都控制在200毫秒以内。不是所有人想象的那么简单。从零开始建立系统不会很难。但是,升级运营了几年的业务系统将是不容易的。(大卫亚设)。

当时组建的Java团队花了近2个月的时间整理业务逻辑和表结构(当时数据库数据库有1000多个表,核心业务表的字段有数百个)。尽管表结构很多不合理,但也不敢大胆大规模改造数据库结构,而是在服务层封装,基本数据库基本不变,数据库根本不动。不知道移动的字段会影响什么PHP代码。(阿尔伯特爱因斯坦,Northern Exposure(美国电视剧),数据库,数据库,数据库)遗憾的是,到目前为止还没有机会。

1.《关于lamp架构我想说从LAMP到框架式开发的SOA:土巴兔8年架构之道》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《关于lamp架构我想说从LAMP到框架式开发的SOA:土巴兔8年架构之道》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1954137.html