您的位置 首页 php

猎聘同道精英汇:嘉宾徐文伟分享分布式高并发Java架构

bfd00069680eb87bd22

7月30日下午,猎聘在杭州沃创空间的沃创咖啡厅,举办了以“大神教你Java新技术”为主题的线下沙龙。主办方猎聘邀请了经验丰富的互联网人徐文伟等众多嘉宾。

徐文伟,现任杭州草根网络科技有限公司信贷事业部总经理,负责测试、运维、DBA、大数据分析、技术支持、架构优化、安全、项目进度等信贷事业部的管理工作。

分享期间,他抛出了一个观点:“语言很重要,更重要的是思想”,获得了在场与会者的高度认同。

c0500058886b190f58a

以下是经整理好的演讲精华摘录。

大家好,今天和各位分享一下“Java、PHP的混合架构”,以及在发展过程当中遇到的问题以及改进的点。

从分享的主题就可以知道我们开发的节奏,Java和PHP的两个层面,这个结构是比较老一点的,很多人没有遇到过这样的Java和PHP同时混合在一起,两个团队一起开发。

我分享的副标题是“语言很重要,更重要的是思想”。思想就我的理解来说,它是一个观点,是在对客观事物的感觉和认识。客观事物的进程中,认知对其起促进发展作用时,认为:这一观念或思想是正确的;反之,对事物的存在与发展是阻碍的话,我们认为这是错误的思想。团队,要能够去主动,主动地认识、主动地分析、主动地沟通。

首先,前端层,我们主要做了两件事情。第一是Lua,使用lua替代php完成相对静态的请求。替换按请求耗时多少分为三个层次:第一层次,相对于快速的请求,如10毫秒以内的这一类请求;第二层次,是100毫秒以内的请求;第三个层次,是比较耗时多的,是100毫秒以上的请求。我们将10毫秒以下的流量归结到一起,在10毫秒以下,所有的请求量将是运行均衡的,类似于马路上所有的交通情况都是行人,没有汽车和车辆。所以,它是均衡的,没有受到其他的干扰。如果是100毫秒以上,我们会考虑Lua请求,是否必须要用Lua来实现和需要进行请求的拆分。

另一个层次是PHP版本,PHP从版本5版本升级到了7版本,现在差不多提升20%或稍微低一点,但没有夸张的说像Facebook所说的版本那样,是100%的提升。

针对上面的改进,我给大家举个例子,一个前端的场景,如抢红包。现在大多项目里都有秒杀活动的场景。很多网站的秒杀活动会涉及到一些限流或降级的动作。那么谈一下我们团队对于秒杀的态度:迎接所有进入的流量,不做限流处理。我们要减少一切不必要的流量,各节点把控处理,关注红包超卖。这个态度的出发点:在于这样的场景下,更能提升各个团队的能力,这当然需要勇气。

Java的分布式,我们开展了一些基础性的工作,按业务模块拆分,实现业务解耦。因为我们是一个资金理财的网站,现在在用户的还款层面,我们可以做到实时到帐,Java所体现解决的事务是2个方面:性能和数据的完整性、一致性。

接下来是缓存部分,当业务发展到一定规模时,项目的缓存数据会增加,容量如:20G、60G、80G。这时会有人建议缓存层面,做分区或集群,这一原则是没有问题的,但我想说的是:我们首先需要做的事情,是搞清楚这20G、60G、80G的数据是什么,这里给出我们缓存拆分的原则: 1)静态数据、动态数据 2)动态数据分:队列(过路)数据,存储数据 3)动态存储数据分:活跃数据、沉默数据 4)用户数据、项目数据(非用户数据)。

另一个层面是记账,所有交易类的项目,都有流水记录。这样普通的记账方式,我们称之为单式记账。当整个网站运行一段时间以后,回过头去看历史数据,这些数据与第三方支付平台对账时,跟公司财务对账时,往往存在数据不一致的情况。这里推荐的一个方式是采用复式记账,将资金的来龙去脉、借贷方式进行记载,做到有借必有贷,借贷必相等。在这一记账方式的基础上,可以做到数据月结、周结、日切,同时,还进行相关的数据比对工作,这一研发,java 说可以做,php 说可以做,最后采用python来完成。就是说,使用不同的方式、手段去佐证数据的可靠性、一致性。

最后,也是最重要的是:团队协作,Java、PHP、测试、运维协同作战,建立联动机制。这里谈2个方面:优化、故障处置。我们有个ELK平台,相关的服务日志信息会汇总到这一平台上,我们要求打debug 日志,同时输出请求的耗时。在这一平台上会体现哪些请求量高,哪些请求耗时长等等,重要的一点:我们这一平台是对所有协同团队开放的,就是说 php工程师可以看到java 服务的请求情况,这对优化、故障处置起到了极大的促进作用,现在研发层面有时都比较依赖这一平台。另外,对app端故障来说,我们建立起了app故障上行ELK平台。现在大多app都在使用类似“友盟”的插件,那么我们这一平台的作用在哪里呢? 当app故障上行到我们自己的平台时,我们把故障信息与测试bug 系统相连接,这样app端所发生的故障将不仅仅是相关app的工程师知道,其他团队的人都会知晓,那么在这样场景下,对app端的改进优化,会起动非常大的促进。

“猎聘作为此次沙龙活动的主办方,旨在通过分享会的形式,把行业的热点及干货分享给相关从业者,从而实现沟通交流,促进行业发展的目的。这也符合猎聘的定位,通过线上与线下的深度融合,以提供增值服务为特点,打造职业发展平台。”猎聘内部人士称。

文章来源:智云一二三科技

文章标题:猎聘同道精英汇:嘉宾徐文伟分享分布式高并发Java架构

文章地址:https://www.zhihuclub.com/48936.shtml

关于作者: 智云科技

热门文章

网站地图