网站首页 > java教程 正文
7月30日下午,由猎聘主办的“大神教你Java新技术”线下分享会,在杭州沃创空间的沃创咖啡厅落下了帷幕。拥有十余年经验的王宏江以“挖财应用架构介绍”为题,分享了宏观层面的Java新技术。
王宏江,曾在阿里巴巴担任架构师,参与过1688、来往等网站的基础建设,以及淘宝类目等基础业务的重构,并在淘宝中间件负责过应用容器与分布式框架团队。其作为Tomcat方面的专家,善于诊断问题以及性能调优,同时他也是函数式编程的爱好者和Scala布道者。
经过整理和精选,以下为王宏江演讲干货。
讲到任何高性能的框架,王宏江称最后都绕不开Actor模型,这个模型已被验证是一种非常可靠高效的模型,最初在Erlang被工业界验证,在其他的语言中也有对这种模型的支持比如C++或Java有第三方的库,Scala则在语言级别支持了这种模型。我们也有用到很多Akka的东西,也用到了Servlet3.0,场景是将http桥接给后边的Actor。
相比之下,对于Scala,我们要取其精华,去其糟粕,不要去过于依赖它,它里面有一些好的部分是帮你在编译时更早地去发现问题,避免在后面运行时的出现隐患。
王宏江列举了一些Scala的优点,优点是直接内置了很多Java模式,这些模式直接在语言层面就帮你做掉了,如Singleton模式、Visitor模式、Facotry模式、Builder模式、immutable模式、依赖注入等等。它也有不好的方面,复杂性高一些,主要是类型系统。Java的泛型之所以比较弱是因为泛型推出的时候Java的历史包袱太重了,有很多妥协在里面,Java生态圈也不太适合引入太多类型层面的高阶特性。
对于Scala,我们是将它作为一门语言,但不要引入它的额外的栈,它的生态系统也是比较独特的,Java生态圈的各种框架在Scala生态里也有对应的框架,不要全然地去接受它,因为里面有很多超出你的掌控能力的,还是用一些你已经很熟悉的,比如Spring,servlet模型等。
当然,我们的系统也不完全是Java,除了Java之外,还有一些其他语言的实现,在异构系统之间通过标准的Http协议来进行交换。
王宏江还在现场分享了一个活动的案例,假设让你做一个广告在BAT级别的入口引流,肯定瞬间就有上千万的用户来访问你的页面或APP,那你怎样去承载这一个活动的压力?
这里面的一切都要以异步化的方式解决,用Akka和Kafka比较好。Actor是一种无锁的模型,在概念上它比较简洁。Java里真正用多线程写出一些高性能且准确的代码,其实还是需要很多功底的;相对而言,Actor会比较容易,尽管在JVM上它底层实现依然是用线程,但在上层它屏蔽很多线程里的细节,你不需要去了解。在不同的语言实现上Actor底层实现也可能不同,不一定都是基于线程。
演讲的最后,王宏江特意强调了几点Actor实践的注意事项,一定要避免堵塞、责任单一、Supervisor和错误处理。必要的话可将一些分支流程断掉,保证关键链路可用。
猜你喜欢
- 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 猎聘同道精英汇:嘉宾徐文伟分享分布式高并发Java架构
- 2025-04-30 猎聘同道精英汇:51信用卡王霖分享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)
本文暂时没有评论,来添加一个吧(●'◡'●)