【Java开发者专场】阿里特邀专家徐雷:Java为王,互联网高并发架构设计选型之路

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: Java从诞生以来几乎一直是排名第一的语言,长期霸榜。在架构师成长道路中,学习Java是绝对是最正确的选择。本文分别分别介绍了Java平台的优势,国内转Java架构的互联网公司的和几种成熟的Java架构的演变路程。在最后,为大家推荐了最成熟的Java架构技术选型路线。

本篇文章来自于2018年12月22日举办的《阿里云栖开发者沙龙—Java技术专场》,徐雷专家是该专场第三位演讲的嘉宾,本篇文章是根据徐雷专家在《阿里云栖开发者沙龙—Java技术专场》的演讲视频以及PPT整理而成。

_


摘要:Java从诞生以来几乎一直是排名第一的语言,长期霸榜。在架构师成长道路中,学习Java是绝对是最正确的选择。本文分别分别介绍了Java平台的优势,国内转Java架构的互联网公司的和几种成熟的Java架构的演变路程。在最后,为大家推荐了最成熟的Java架构技术选型路线。
演讲嘉宾简介:
徐雷,资深架构师,MongoDB中文社区联席主席,阿里云栖Java讲师,阿里云大学MongoDB讲师,MongoDB中文社区主席,专家组成员;专注于分布式架构,Java Spring Boot、Spring Cloud、MongoDB、Redis;10年+开发经历,喜欢专研技术问题;《MongoDB实战》第2版、《24种云计算架构设计模式》译者

本次直播视频精彩回顾,戳这里!https://yq.aliyun.com/live/721
PPT下载地址:https://yq.aliyun.com/download/3236
以下内容根据演讲嘉宾视频分享以及PPT整理而成。

本次的分享主要围绕以下三个方面:

一、Java为王
Java从诞生以来一直是排名第一的语言,长期霸榜。国外有一个Programming Language Rank网站,提供了各类编程语言百分比的排名(如下图)。Java语言长期排名第一,百分比曾经一度达到26%,这个数据是非常高的。很多东西之所以流行是有内在原因的,Java也是一样,Java领域好东西很多。最近因为Oracle提出要对Java收费,Java语言排名有稍微波动,Oracle作为传统的软件公司,缺少互联网开源社区思维。但尽管Java语言被折腾的死去活来,但是生命力还是经受得住考验的。同样,其中还有最近非常火的Go语言,以及Python语言。因为AI的流行,Python语言也是非常火热。
最近很多人会担心Java收费的问题,但如果仔细查看过官方的科技文档的话会注意到其中写的是对Oracle JDK收取维护费用,由于整个Java的生态是非常大的,Oracle JDK 并不等于Java JDK。另外国内BAT几大公司早已考虑到这个问题,他们都有自己的Java JDK,如Open JDK。所以完全不用担心Java会收费,Java之父James Gosling跳槽到亚马逊,亚马逊前不久也已经承诺永久免费自己的JDK版本,并且支持最新的Java 11。

_1


二、Java架构互联网公司
在一个月之前,国内发布了关于互联网公司的排名,其中前100名的公司中超过95%的公司都选择了Java架构。所以Java学得好,找到高薪工作并不是难题。
语言本身没有优劣之分,但是架构体系确实有成熟度和完善度的区别。下图列出了国内转Java架构的一些互联网公司,在2011年左右,京东最早开始转Java,现在看来是可以说是非常有先见之明的选择。作为公司的架构师或者技术专家,在选择技术解决方案时一定要符合公司本身的情况,而不是依据自己的喜好。同时注意不要选择多种语言,尽量选择统一的语言,因为语言越少,风险也就越可控。后期可以根据业务发展需要选择合适的语言框架。

_2


目前的互联网并发架构中,天猫双11是最好的分布式高并发架构的案例。去年双11的MySQl数据库写入是每秒4000万,今天就已经超过1个亿。相比之下,美国的黑五远没有双11的并发高,一是因为人口差距,另外黑五的活动力度并没有双11大,在美国,平时也可以买到很便宜的商品。可以说阿里现在的技术架构在领导着国内互联网技术架构的发展,所以大家可以平时多关注阿里的技术峰会,跟进学习最新的技术。

_3


国内互联网企业在技术架构选型方面绝大多数是选择开源,免费,跨平台和成熟的技术路线。在早期,国内很多大的国企使用的都是Oracle,IBM的技术。到现在,国内几大银行也开始走开源免费的路线。这是因为之前没有比较成熟的系统架构路线和案例,但在近十几年,BAT几大公司已经为大家踩出来了这种技术路线,带领着很多企业往这个方向走。
下图列出了很多开源社区的技术框架,涵盖的范围很大,前端后端以及中间件,包括操作系统。操作系统的话,Linux最火的CentOS和Ubuntu是互联网公司用的比较多的系统。Java服务器是Tomcat,消息队列的话中小型公司可以选择RabbitMQ,大型公司可以用Kafka。要注意,架构师在选择技术框架时,一定要学习它们背后的原理,不停的钻研,不能停留在只会用,只会用的架构师很快会被淘汰掉。在做架构设计时,永远要把公司的需求放在第一位,永远为公司的业务服务。而且架构设计往往没办法一步到位,这个过程一定是可迭代的,可进化的。

_4


三、Java架构案例
SOA架构
电商领域有很多技术架构,SOA架构是面向服务的架构,大概是10年前提出的架构,但到现在还是有很多企业在用SOA架构。

_5


移动互联网架构
在SOA的基础上,技术架构一直在慢慢演化。下图移动互联网的架构,继续演化细分更多层。
_6
现在用的比较多Java架构是基于Spring MC 或者Spring boot。简单的三层架构其实并没有什么难度,但要放到更复杂的分布式环境的,可能会遇到许多挑战性的问题。而且同时要把一个架构周边的关键技术也要掌握,这样才会具备竞争力。作为一名架构师,还要提高自身的沟通能力,理解并能够将公司或者客户的需求变现落地。

_7


物联网IOT架构
物联网IOT架构需要对接一些硬件设备,比如智能手环,高德地图,车载设备等等。因此物联网的数据采集频率会比较高,很多时候会涉及到大数据,虽然可以用Go和C#等别的语言做物联网架构,但是在大数据领域,Hadoop,Spark等几个主要的技术框架基本是基于Java的,所以在选择语言时,选择Java还是最合适而且风险最小的,另外团队内也可以形成技术积累。

_8


服务治理架构
下图是阿里提出的Dubbo架构,绝大多公司还用不到这个架构。因为很多公司还没有遇到如此复杂的分布式系统架构问题。Dubbo考虑对接不同的分布式协议,注意不是所有的协议都是HTTP,Dubbo支持的协议多种多样,而且都提供了不同解决方案。Dubbo架构中Elastic Computing思想非常好,它可以做到在高并发之后进行弹性扩容。

_9


微服务架构
选择微服务架构要视自己公司的情况而定,不是所有的系统都适合微服务架构。因为有许多潜在的问题。目前比较成熟的微服务解决方案是Java Spring Cloud。当然也有开源的Service Mesh,但是它的技术栈还不是太成熟。从字面层面上说,微服务是把大服务拆分成小的服务,随之而来,这会涉及到很多周边的问题,其中包括安全问题,通信协议问题,部署问题,统一接口问题和代理问题等等。如果想学习微服务,一定要关注这些问题,这才是微服务最有价值的地方。微服务架构中使用MongoDB和Redis的还是比较多的。近四年来,Spring Cloud,包括社区协同开发贡献的许多框架,以及阿里开源的微服务框架Spring Cloud Alibaba,是的Java的微服务方案更加的成熟,已经经过千百亿级别消息互联网公司的验证。可以说微服务架构的成熟技术方案都是基于Java的。目前来讲,微服务架构的Java解决方案坑是最少的,最成熟的,虽然有几个语言抄袭的Java某个微服务框架,但是无法抄袭整个不断变化发展的平台。

_10


大数据架构
Hadoop技术框架很多大公司都在用,目前主要的最成熟的大数据架构解决方案也都是基于Java,当然也有一部分使用Scala,但其实Scala也算是Java语言的一个变种。另外还有些轻量级技术解决方案,如Spark,Storm,Flink等等。不同的方案解决问题的侧重点是不同的,在选择技术解决方案时要注意总体方向要选对。

_11


IOT+大数据架构
技术架构在早期是单一的,但是到后期一定是多重架构综合起来。比如电商领域,后期会进行微服务架构进行局部的改造,再慢慢引入大数据架构。另外要注意,在做数据采集时,每个数据节点都是集群架构模式,如果机器宕机,数据会直接丢失,无法恢复。所以在技术路线选型上推荐下图中的方案,基于Open JDK和Java Spring Cloud这套路线。综合来讲,Java架构是最成熟的,而且,它可以一次提供几套成熟的技术架构方案。

_12


本文由云栖志愿小组董黎明整理 编辑
社群技术交流:【阿里Java技术进阶】每周在群内进行【技术培训直播】和【在线回答技术问题】欢迎点击link入群: http://tb.cn/gXRstIw
或者 钉钉扫码入群:
JAVA_
相关文章:
阿里云栖开发者沙龙-Java技术专场 (最全资料下载)
【Java开发者专场】阿里专家梁笑:2018双十一下单成功率99.9%!供应链服务平台如何迎接大促
【Java开发者专场】阿里专家墨玖:淘票票工程师文化
【Java开发者专场】阿里专家杜万:Java响应式编程,一文全面解读
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
1月前
|
机器学习/深度学习 缓存 自然语言处理
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
DeepSeekMoE是一种创新的大规模语言模型架构,融合了专家混合系统(MoE)、多头潜在注意力机制(MLA)和RMSNorm归一化。通过专家共享、动态路由和潜在变量缓存技术,DeepSeekMoE在保持性能的同时,将计算开销降低了40%,显著提升了训练和推理效率。该模型在语言建模、机器翻译和长文本处理等任务中表现出色,具备广泛的应用前景,特别是在计算资源受限的场景下。
586 29
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
|
3月前
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
3月前
|
Java 开发者
Java 开发者注意!限时招募产品体验官,100% 获得好礼
🚀【开发者福音】SoFlu-JavaAI 开发助手来袭!💻 摆脱熬夜赶需求的压力,SoFlu-JavaAI 助你轻松应对:理清需求、设计架构、编写逻辑与代码、一键构建工程。立即体验高效开发![了解更多](https://mp.weixin.qq.com/s/h9lwDGbwhYodoNjOxsaxIQ) # 产品体验官限时招募中!
Java 开发者注意!限时招募产品体验官,100% 获得好礼
|
3月前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统架构差异及其对开发者的影响
本文旨在通过对比分析iOS和Android两大移动操作系统的系统架构,探讨它们在设计理念、技术实现及开发者生态方面的差异。不同于常规摘要仅概述内容要点,本摘要将简要触及核心议题,为读者提供对两大平台架构特点的宏观理解,铺垫
|
4月前
|
缓存 关系型数据库 MySQL
高并发架构系列:数据库主从同步的 3 种方案
本文详解高并发场景下数据库主从同步的三种解决方案:数据主从同步、数据库半同步复制、数据库中间件同步和缓存记录写key同步,旨在帮助解决数据一致性问题。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
高并发架构系列:数据库主从同步的 3 种方案
|
5月前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
181 1
Spring 框架:Java 开发者的春天
|
4月前
|
缓存 负载均衡 网络协议
高并发架构的CDN知识介绍
本文详细介绍了网络请求过程,特别是大型网站架构中DNS和CDN的作用。通过一张常用架构图,文章解释了从客户端请求到服务器响应的全过程,包括DNS解析、负载均衡、CDN加速等关键环节,帮助读者深入了解高并发架构的设计原理和优化方法。
335 1
|
5月前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
100 8
|
4月前
|
安全 Java Linux
深入解析Android系统架构及其对开发者的意义####
【10月更文挑战第21天】 本文旨在为读者揭开Android操作系统架构的神秘面纱,探讨其如何塑造现代移动应用开发格局。通过剖析Linux内核、硬件抽象层、运行时环境及应用程序框架等关键组件,揭示Android平台的强大功能与灵活性。文章强调了理解Android架构对于开发者优化应用性能、提升用户体验的重要性,并展望了未来技术趋势下Android的发展方向。 ####
121 0
|
5月前
|
存储 算法 Java
Java的Set集合以其严格的“不重复性”著称,使开发者既好奇又困惑
Java的Set集合以其严格的“不重复性”著称,使开发者既好奇又困惑。本文将探讨Set为何如此“挑剔”。Set接口不包含重复元素,适用于需要唯一性约束的场景。其内部通过哈希表或红黑树等数据结构和哈希算法、equals()方法来确保元素的唯一性。示例代码展示了Set如何自动过滤重复元素,体现了其高效性和便利性。
73 2

热门文章

最新文章