网站首页 > java教程 正文
7月30日下午,猎聘在杭州沃创空间的沃创咖啡厅,举办了以“大神教你Java新技术”为主题的线下沙龙。主办方猎聘邀请了经验丰富的互联网人徐文伟等众多嘉宾。
徐文伟,现任杭州草根网络科技有限公司信贷事业部总经理,负责测试、运维、DBA、大数据分析、技术支持、架构优化、安全、项目进度等信贷事业部的管理工作。
分享期间,他抛出了一个观点:“语言很重要,更重要的是思想”,获得了在场与会者的高度认同。
以下是经整理好的演讲精华摘录。
大家好,今天和各位分享一下“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端的改进优化,会起动非常大的促进。
“猎聘作为此次沙龙活动的主办方,旨在通过分享会的形式,把行业的热点及干货分享给相关从业者,从而实现沟通交流,促进行业发展的目的。这也符合猎聘的定位,通过线上与线下的深度融合,以提供增值服务为特点,打造职业发展平台。”猎聘内部人士称。
猜你喜欢
- 2025-04-30 2025 及未来 RAG 趋势:深入解析四大创新技术
- 2025-04-30 AI 时代程序员生存指南:掌握这 3 个核心能力稳赢未来
- 2025-04-30 java好学吗?完全没经验能学会吗(java好学嘛)
- 2025-04-30 90%程序员不知道的Java流程控制优化技巧,让你的代码更高效!
- 2025-04-30 Java面试题: 项目开发中的有哪些成长?该如何回答
- 2025-04-30 Java17,有史以来最快 JDK(java 运行速度)
- 2025-04-30 深入解析Java虚拟机(JVM)底层原理
- 2025-04-30 京东大佬问我,java高级技术人员要掌握哪些技术呢?
- 2025-04-30 猎聘同道精英汇:51信用卡王霖分享Java项目的技术选型
- 2025-04-30 JUnit5:Java单元测试框架的新宠儿
你 发表评论:
欢迎- 最近发表
-
- 多种负载均衡算法及其Java代码实现
- 输入www.baidu.com背后经历了啥?说清楚这个,已经超过90%的人了
- 优化MySQL:为什么你应该用 UNSIGNED INT 存储IP地址
- 实模式下CPU如何获取数据及指令(实模式寻址方式)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- 盘点爬虫语言为何选择Python而不是Java
- 搭载Dubbo+Zookeeper踩了这么多坑,我终于决定写下这篇
- 网络协议之TCP/IP协议(面试必考内容) - javaEE初阶 - 细节狂魔
- 深夜报警!10亿次请求暴击,如何用Redis找出最热IP?
- VPN技术(IPsec/L2TP/SSLVPN/PPTP)学习笔记
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)