03HTTP协议必知必会

02 | HTTP协议必知必会

在开始学习 Web 容器之前,我想先问你一个问题:HTTP 和 HTML 有什么区别?

为什么我会问这个问题?你可以把它当作一个入门测试,检测一下自己的对 HTTP 协议的理解。因为 Tomcat 和 Jetty 本身就是一个“HTTP 服务器 + Servlet 容器”,如果你想深入理解 Tomcat 和 Jetty 的工作原理,我认为理解 HTTP 协议的工作原理是学习的基础。

03JupyterNotebook为什么是现代Python的必学技术

02 | Jupyter Notebook为什么是现代Python的必学技术?

你好,我是景霄。

Stack Overflow 曾在 2017 年底,发布了在该站上各种语言的提问流量。其中,Python 已经超过了 JavaScript 成为了流量最高的语言,预测在 2020 年前会远远甩开 JavaScript。

03把错误关在笼子里的五道关卡

02 | 把错误关在笼子里的五道关卡

上一讲中,我们一起讨论了什么是优秀的代码。简而言之,优秀的代码是经济、规范、安全的代码。在平时的工作中,我们要朝着这个方向努力,时常站在团队、流程、个人能力的角度去思考优秀代码。

03拆分与合并如何快速地批量处理内容相似的Excel

01 | 拆分与合并:如何快速地批量处理内容相似的Excel?

你好,我是尹会生。今天是咱们的第一节课,我先带你学习下,如何用 Python 操作 Excel。

Excel 是我们在工作中用到的最频繁的软件之一,它有着强大的计算能力和便捷的图表功能。如果我们要在同一个 Excel 文件中进行操作,手工进行也很方便,但问题是,如果我们需要同时操作多个 Excel 文件,就是一件非常耗时的事情了。

03产品经理工具指南

02 | 产品经理工具指南

产品经理在日常工作中会用到大量的软件工具,每种工具都有它适合的场景。所谓“工欲善其事,必先利其器”,恰当地选择不同的工具,对产品经理来说非常重要。每种工具的背后也对应着产品经理相应的技能以及思考。

03场景应用:响应式编程能够应用于哪些具体场景?

通过上一讲的学习,相信你已经掌握了响应式编程中的几个核心概念,即响应式流、背压机制以及响应式流规范,这些概念是理解后续课程内容的基础。

而在介绍基于 Spring 框架的响应式编程技术之前,你可能会有疑问:响应式编程能够应用到那些具体的场景呢?目前有哪些框架中使用到了这一新型的技术体系呢?这一讲我将为你解答这些疑问。

03规范兼容:JDBC规范与ShardingSphere是什么关系?

我们知道 ShardingSphere 是一种典型的客户端分片解决方案,而客户端分片的实现方式之一就是重写 JDBC 规范。在上一课时中,我们也介绍了,ShardingSphere 在设计上从一开始就完全兼容 JDBC 规范,ShardingSphere 对外暴露的一套分片操作接口与 JDBC 规范中所提供的接口完全一致。

03丨沟通:程序员为什么应该爱上交流?

程序员这个群体最开始被社会认知的时候,标签之一就是不善交流。慢慢地,“喜欢玩电脑,不喜欢和人交流”成了大家对程序员的一个刻板印象。作为程序员,我发现工作的时间越久,承担的责任越大,那么交流是一个越来越重要的能力。

03丨套接字和地址:像电话和电话号码一样理解它们

在网络编程中,我们经常会提到 socket 这个词,它的中文翻译为套接字,有的时候也叫做套接口。

socket 这个英文单词的原意是“插口”“插槽”,在网络编程中,它的寓意是可以通过插口接入的方式,快速完成网络连接和数据收发。你可以把它想象成现实世界的电源插口,或者是早期上网需要的网络插槽,所以 socket 也可以看做是对物理世界的直接映射。

03集群搭建:手把手教你玩转Kubernete集群搭建

通过上一节课的学习,我们已经对 Kubernetes 的架构有了清楚的认识。但是到现在还没有和 Kubernetes 集群真正打过交道,所以你可能有一种“不识庐山真面目”的云里雾里的感觉。那么本节课,我们就来学习如何搭建 Kubernetes 集群,开启探索 Kubernetes 的第一站。

03前车之鉴:日本和美国的贸易战

上一讲我们得出了结论,美国发动这场贸易战的真实目的是把中国的高科技扼杀在萌芽状态。这种情况有迹可循,因为美国曾经就用贸易战的方式对付过日本。今天我们就来看看日美贸易战是如何展开的。, , 1941 年 12 月 7 日,日本偷袭了美国珍珠港,引发美国震怒,罗斯福总统发表战书,正式向日本宣战。1945 年日本惨败,但它仍负隅顽抗,为了迫使日本尽快投降,美国向日本的广岛和长崎投下原子弹。1945 年 8 月 15 日,日本裕仁天皇被迫宣布无条件投降,日本也成了美国的敌人。, , 随着朝鲜战争爆发,日本得到了美国援助,经济迅速恢复。经过了 20 年的发展,1967 年日本的 GDP 跃升至世界第二,成为仅次于美国的发达国家。30 年来日本经济以每年 10% 的速度增长,一直雄居全球榜首。80 年代的日本风靡全球,它仿佛成了世界的宠儿,全世界都羡慕日本的成就。90 年代初,我前往德国读书,当时德国商场里摆满了日本货:冰箱、彩电、洗衣机、照相机、胶卷、汽车等。当时日本的胶卷照出的照片颜色非常鲜艳,可以说日本产品受到了世界瞩目。, , 出人意料的是,90 年代初,日本经济突然出现问题,他们的产品卖不出去了。一夜之间,日本经济迅速崩盘,陷入大衰退。到底发生了什么让这个如日中天的国家瞬间跌入谷底,甚至接下来的 20 年也没有从这种衰退中走出来呢?别急,且听我慢慢道来。, , 70 年代日本产品风靡全球,大举进入美国市场,美国很多产业受到了日货的冲击。美国人开始坐不住了,在他们看来,日本全靠美国的帮助存活,如今你强大了,想来跟我竞争,没门!于是两国打起了旷日持久的贸易战,从 1960 年到 1990 年,日美之间爆发了无数次贸易纠纷,先后涉及纺织品、钢铁、家电、汽车、电信、半导体等行业。, , 你看,40 年前发生的这一幕,和现在的中美贸易战比起来,是不是有点似曾相识的感觉。, , 接下来我们就来看看日美贸易战的具体经过,一起分析日本是如何作出让步的,你也可以预测一下美国对付中国还会使出什么招数。, , 1. 纺织品大战(1957 年-1972 年), , 50 年代日本纺织品抢占了美国市场,1957 年美国发动了贸易战,这场“纺织品大战”从 1957 年一直打到 1972 年,整整打了15年,最终以日本“自愿出口限制”结束了纺织品大战。, , 这里你需要了解什么是“自愿出口限制”。因为日本和美国的贸易战打得太激烈了,日本政府作出让步:我们别打了,定一个出口的限额,比如纺织品我们限定一个额度,超过限额我就不出口了。这就叫自愿出口限制。纺织品让步也是美国逼迫日本政府在贸易博弈中做出的第一个让步。, , 2. 钢铁战, , 70 年代日本钢铁行业异军突起,主要出口到美国,导致美国本土生产的钢铁滞销。1977 年美国发起反倾销诉讼,日本钢铁业在十年内被迫 3 次自愿限制对美出口。, , 3. 彩电战, , 1970 年日本家电行业崛起,对美出口占彩电出口的 90%,占据美国市场 30% 的份额。1977 年日美签订贸易协议,日本的彩电也承诺了“自愿出口限制”。, , 4. 汽车战, , 这是日美贸易战中最激烈的一场。80 年代日本汽车在美国的出口飙升,导致美国生产的汽车无人问津,美国汽车企业一片哀号,而且极大程度上影响了美国的就业,也因此引发了美国国内的抗议浪潮,最终以日本汽车自愿出口限制结束了这场汽车大战。, , 后来日美还打了半导体战和电信战。你可以发现,日本在对美国的贸易战中且战且退,尽管美国的企业竞争不过日本。无论是家电、汽车、纺织品等,美国产品和日本产品相比根本就没有竞争力。那怎么办呢?美国想了一个“绝妙”的方法,也就是后来的“广场协定”,迫使日本不得不就范。, , 1985 年 9 月 22 日是一个让日本国民都痛彻心扉的日子,那一天在美国主导下,美、日、德、法、英的财政部长和中央银行行长在美国纽约广场饭店举行会议,签署《广场协议》,逼迫日元升值。, , 同意升值不要紧,但是在短短三年时间,日元汇率从 250 日元兑换 1 美元,升值到 120 日元兑换 1 美元,日元对美元升值了一倍。我们以买卖胶卷为例,原来一个日本胶卷在美国市场上售价 3 美元,日元升值后该胶卷售价 5 美元。这样日本胶卷在美国还卖得出去吗?再比如原来一辆日本车,在美国市场上售价 2 万美元,升值后售价 3 万美元,日本车还卖得出去吗?不仅在美国,日本的产品在哪个国家的市场上都卖不出去了,因为它的价格变得昂贵了。, , 协议签订后,由于日元升值,日本出口竞争力受到了巨大打击,日本产品丧失了竞争力。当时日本国内经济萧条,为了刺激经济,日本政府开始放松银行政策,这就为股票和房地产市场提供了大量的资金流,也因此推动了日本国内的投机热潮。, , 日元升值后,日本国民口袋里的钱也升值了,一块钱变成了两块钱,他们一夜之间变得富裕起来。日本的商人们发现,不再需要造彩电、卖汽车了,他们找到了更便捷的发财之路——买房置地、买证券炒股票,于是大家都开始投机了,结果炒高了日本的股价和地价。, , 炒到 1989 年底,日本东京圈的地价总值能和全美国的地价总值画上等号。也就是说,卖掉东京可以买下整个美国。你看,日本国土面积这么小,东京圈更是巴掌大,美国的国土面积多么大,东京换美国,太过荒谬!, , 90 年代初,我去德国莱茵河畔的杜塞尔多夫办事时,一下火车我就发现这个德国城市俨然成了日本的城市,到处插满了日本的国旗。不仅如此,富裕的日本人又跑去美国,买下一栋又一栋大楼。然而,繁荣毕竟是假象,维持不久。1991 年,日本的经济泡沫彻底破了,自此它陷入了“失去的二十年”,再也没有了挑战美国经济霸权的资格。, , 我们总结一下日本失败的经过,一个世界第二大经济体先被美国用打贸易战的手段“自愿限制出口”,后用汇率战的手段彻底打垮。我们应该汲取哪些教训呢?美国想用对付日本的手段对付中国,但他没有想到中国和日本不一样,我们不会被轻易击垮,又是为什么呢?, , 我认为,中国和日本有两点不同。, , 1. 市场不同, , 美国跟日本打贸易战时,日本的零售市场只占美国的 30%,但是今天中国零售市场已经和美国的市场规模一样大。日本当时才有 1 亿多人口,中国现在人口有 14 亿。, , 2. 国情不同, , 政治上日本依附于美国,军事上受到美国保护,在经济上也受制于美国,日本必须对美国逆来顺受、听之任之。, , 上述两点差异就决定了中美贸易战和日美贸易战的不同:, , 中国不会对美国大举退让,因为我们不依赖于美国;, , 中国不会做自愿出口限制,因为我们不会对美国的要求听之任之;, , 中国不会像日本一样妥协,因为我们不需要美国的保护;, , 中国不会放弃产业升级,因为这是中国发展的必由之路。, , 大国重器必须掌握在自己手中,我们不能让日本的悲剧在中国重演。, , 这次美国派来中国的贸易谈判代表团的成员都是鹰派人物,其中负责 2019 年中美贸易谈判的是莱特希泽,他也是日美贸易战一战成名的人物。当年美国和日本打贸易战时,他就利用惩罚性关税的威胁,说服了日本“自愿”限制对美国的出口。这次特朗普亲自点将,派莱特希泽对付中国,他们来者不善。这是一场硬仗,也是一场极为艰难的谈判。, , 现在已经有了日本的前车之鉴,下一讲我们继续来看中美贸易战,聊一聊在这场贸易战中,两国政府都采取了什么样的战略思路。, , -– ### 精选评论 ##### **1231: > 求更新 ######     编辑回复: >     每周一三五准时更新哦~ ##### *亮: > 又说极限施压 又说别人怕 这里矛盾 谁都知道没有实力 谁会蠢到极限施压

03深入剖析:哪些资源,容易成为瓶颈?


title: “03深入剖析:哪些资源,容易成为瓶颈?” draft: false date: 2024-06-14 keywords: [03深入剖析:哪些资源,容易成为瓶颈?, Java 性能优化实战21讲, 极客时间] categories: [Java 性能优化实战21讲] tags: [极客时间] comment: true toc: true autoCollapseToc: true

在第 02 课时,我们简单介绍了解决性能问题常用的一些切入点。本课时我将从计算机资源层面向你讲解,哪些系统组件容易出现性能瓶颈?以及如何判断该系统组件是否达到了瓶颈?

03数据分片:如何存储超大规模的数据?

前两讲我们介绍了分布式数据库,以及各种 SQL 的发展脉络,那么从这一讲开始,我们就正式进入分布式数据库核心原理的学习。

随着互联网时代,特别是移动互联网的到来,形形色色的企业都在将自己的系统平台快速升级迭代,以此作为向互联网转型的一部分。

03微服务架构是如何演进的?

我们在前面两篇文章中已经介绍了云原生相关的概念及其应用,本课时开始我们将会进入微服务的相关学习。

微服务架构是当前流行的架构方式,在本课时我们将会首先介绍服务端架构的发展,如何由单体一步步演进到微服务架构;随后介绍 Go 语言微服务架构的选型,确定本课程的基本框架;最后,在学习完云原生和微服务的相关知识,我们再回顾一下云原生架构与微服务架构之间到底是什么关系。

03诊断利器:Java性能分析神器AlibabaArtha

Arthas 是阿里开源的 Java 诊断工具,可以让开发者快速定位故障问题,那么为什么用“神器”来形容 Arthas 呢?

Arthas 由阿里早期的开源诊断工具 Greys 演进而来,你可以将 Arthas 看作是Greys的升级产品。由于 Arthas 提供了更加丰富的工具,在 2018 年底发布,就受到了很多开发者的青睐,并且也得到了来自 Java 官方的赞许。

04__ACK机制:如何保证消息的可靠投递?

你好,我是袁武林。

在第一节的课程中,我们说到了即时消息系统中的四个重要特性,实时性、可靠性、一致性、安全性。

上一节课我们从如何保证消息实时性方面,了解了业界常用的一些方式以及背后具体的原理。那么今天我们接着来讲一讲,在即时消息的系统架构设计里,如何来保证消息的可靠投递。

04__AOF日志:宕机了,Redis如何避免数据丢失?

你好,我是蒋德钧。

如果有人问你:“你会把 Redis 用在什么业务场景下?”我想你大概率会说:“我会把它当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。”没错,这确实是 Redis 的一个普遍使用场景,但是,这里也有一个绝对不能忽略的问题:一旦服务器宕机,内存中的数据将全部丢失。

04__BASE理论:CAP的碱,追求可用性

你好,我是韩健。

很多同学可能喜欢使用事务型的分布式系统,或者是强一致性的分布式系统,因为使用起来很方便,不需要考虑太多,就像使用单机系统一样。但是学了 CAP 理论后,你肯定知道在分布式系统中要实现强一致性必然会影响可用性。比如,在采用两阶段提交协议的集群系统中,因为执行提交操作,需要所有节点确认和投票。

04__DAG与流水线:到底啥叫“内存计算”?

你好,我是吴磊。

在日常的开发工作中,我发现有两种现象很普遍。

第一种是缓存的滥用。无论是 RDD,还是 DataFrame,凡是能产生数据集的地方,开发同学一律用 cache 进行缓存,结果就是应用的执行性能奇差无比。开发同学也很委屈:“Spark 不是内存计算的吗?为什么把数据缓存到内存里去,性能反而更差了?”

04__export_default_function()_{}:你无法导出一个匿名函数表达式

你好,我是周爱民,欢迎回到我的专栏。

今天我要讲述的内容是从 ECMAScript 6 开始在 JavaScript 中出现的模块技术,这对许多 JavaScript 开发者来说都是比较陌生的。

一方面在于它出现得较晚,另一方面,则是因为在普遍使用的 Node.js 环境带有自己内置的模块加载技术。因此,ECMAScript 6 模块需要通过特定的命令行参数才能开启,它的应用一直以来也就不够广泛。

04__GPU与渲染管线:如何用WebGL绘制最简单的几何图形?(上)

你好,我是月影。今天,我们要讲 WebGL。今天的内容比较多,也比较重要,所以我们会分上、下两节课来讲。

WebGL 是最后一个和可视化有关的图形系统,也是最难学的一个。为啥说它难学呢?我觉得这主要有两个原因。第一,WebGL 这种技术本身就是用来解决最复杂的视觉呈现的。比如说,大批量绘制复杂图形和 3D 模型,这类比较有难度的问题就适合用 WebGL 来解决。第二,WebGL 相对于其他图形系统来说,是一个更“开放”的系统。

04__JVM是如何执行方法调用的?(上)

前不久在写代码的时候,我不小心踩到一个可变长参数的坑。你或许已经猜到了,它正是可变长参数方法的重载造成的。(注:官方文档建议避免重载可变长参数方法,见 [1] 的最后一段。)

04__TCP三次握手:怎么使用套接字格式建立连接?

你好,我是盛延敏,这里是网络编程实战第 4 讲,欢迎回来。

在上一讲里我们介绍了 IPv4、IPv6 以及本地套接字格式,这一讲我们来讲一讲怎么使用这些套接字格式完成连接的建立,当然,经典的 TCP 三次握手理论也会贯穿其中。我希望经过这一讲的讲解,你会牢牢记住 TCP 三次握手和客户端、服务器模型。

04__WebAssembly_模块的基本组成结构到底有多简单?

你好,我是于航。今天我来和你聊一聊 Wasm 模块的基本组成结构与字节码分析。

在之前的课程中,我们介绍了 Wasm 其实是一种基于“堆栈机模型”设计的 V-ISA 指令集。在这节课中,我们将深入 Wasm 模块的字节码结构,探究它在二进制层面的基本布局,以及内部各个结构之间的协作方式。

04__笔酣墨饱:如何创建你的故事库?

你好,我是涵柏。

今天继续我们的故事旅程。上节课我们从故事思维入手,和你聊了聊故事思维的特质以及如何培养故事思维。细心的你应该会发现,要培养这种思维,一定离不开一样东西,那就是我们自己的故事库。

04__避坑指南:从技术骨干到一线经理,你会遇到哪些坑?

你好,我是许健。今天我们来聊聊技术骨干转型经理那些坑。

技术骨干在转型经理之前,一般都是部门里专业能力很强的那类人。但转型经理后,我们的思维就不能只关注于事,要同时开始关注事和人,而这里面更关键的其实是人。因为所有的事儿都需要人来完成,而经理更多的是通过培养人和激励人,从而提升团队做事儿的效果。那到底什么叫“关注事”,什么叫关注“人”呢?我下面给你举几个例子,你一看就能明白了。

04__编程语言的进化

你好,我是七牛云许式伟。今天我们继续来聊聊编程语言。

编程语言的出现,诞生了软件工程师(也叫程序员)这样一个职业,而汇编语言则可以看做是软件工程师这个分工出现的标志。

04__编译阶段能做什么:属性和静态断言

你好,我是 Chrono。

前面我讲了 C++ 程序生命周期里的“编码阶段”和“预处理阶段”,它们的工作主要还是“文本编辑”,生成的是人类可识别的源码(source code)。而“编译阶段”就不一样了,它的目标是生成计算机可识别的机器码(machine instruction code)。