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

简介: 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响应式编程,一文全面解读
相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
11月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
495 7
|
存储 安全 Java
2025 年一线互联网大厂最新高质量 Java 面试八股文整理及答案汇总
本文整理了一线互联网大厂最新的高质量Java面试八股文及其答案,涵盖Java基础、集合框架与多线程三大核心模块。内容包括面向对象与面向过程的区别、`equals`与`==`的差异、`final`和`static`的用法、集合类如`ArrayList`与`LinkedList`的对比、`HashMap`的工作原理及其与`Hashtable`的区别,以及多线程中的线程创建方式、生命周期、上下文切换和死锁等知识点。通过系统化的梳理与解析,帮助读者高效备考Java面试,掌握核心技术要点。资源可从文末链接下载。
2955 40
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
消息中间件 存储 设计模式
RocketMQ原理—5.高可用+高并发+高性能架构
本文主要从高可用架构、高并发架构、高性能架构三个方面来介绍RocketMQ的原理。
3635 21
RocketMQ原理—5.高可用+高并发+高性能架构
|
搜索推荐 算法 Java
2025 年互联网大厂校园招聘 JAVA 工程师笔试题及备考要点解析
本文针对互联网大厂校招Java工程师笔试题进行解析,涵盖基础知识、面向对象编程、数据结构与算法、异常处理及集合框架等核心内容。从数据类型、运算符到流程控制语句,从类与对象、继承多态到数组链表、排序算法,再到异常捕获与集合框架应用,结合实际案例深入剖析,助你系统掌握考点,提升应试能力。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
430 9
|
存储 安全 Java
2025 年一线互联网大厂最新高质量 Java 面试八股文整理带答案及实操要点
本文整理了一线互联网大厂最新的高质量Java面试八股文及答案,涵盖Java基础、集合、多线程等多个核心方面,帮助你高效备考。内容包括面向对象与面向过程的区别、`equals`与`==`的对比、`final`和`static`的用法,以及ArrayList与LinkedList的区别、HashMap的工作原理等。同时,深入探讨了多线程创建方式、生命周期、上下文切换及死锁问题,并附有实操代码示例。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
1689 1
|
Java 关系型数据库 MySQL
2025 年互联网公司校招 Java 面试题总结及答案实操示例解析
本项目基于Spring Boot 3与Java 17技术栈,围绕校园招聘常见面试题,提供核心知识点的实操示例。涵盖多线程、RESTful API设计、数据库操作(Spring Data JPA)、事务管理及异常处理等。通过完整代码实现与运行步骤,帮助理解用户管理、线程池配置等实际应用场景。资源包含项目结构、关键代码示例(如User实体类、UserService服务层、ThreadService多线程实现)及数据库迁移脚本,适合深入学习与实践。环境要求:JDK 17+、Maven 3.8+、MySQL 8.0+。
452 3
|
SQL Java 数据库连接
阿里腾讯互联网公司校招 Java 面试题总结及答案解析
本文总结了阿里巴巴和腾讯等互联网大厂的Java校招面试题及答案,涵盖Java基础、多线程、集合框架、数据库、Spring与MyBatis框架等内容。从数据类型、面向对象特性到异常处理,从线程安全到SQL优化,再到IOC原理与MyBatis结果封装,全面梳理常见考点。通过详细解析,帮助求职者系统掌握Java核心知识,为校招做好充分准备。资源链接:[点击下载](https://pan.quark.cn/s/14fcf913bae6)。
558 2
|
Java 数据库连接 API
互联网大厂校招 JAVA 工程师笔试题解析及常见考点分析
本文深入解析互联网大厂校招Java工程师笔试题,涵盖基础知识(数据类型、流程控制)、面向对象编程(类与对象、继承与多态)、数据结构与算法(数组、链表、排序算法)、异常处理、集合框架、Java 8+新特性(Lambda表达式、Stream API)、多线程与并发、IO与NIO、数据库操作(JDBC、ORM框架MyBatis)及Spring框架基础(IoC、DI、AOP)。通过技术方案讲解与实例演示,助你掌握核心考点,提升解题能力。
506 2

热门文章

最新文章