16GoRPC如何实现服务间通信?
在上一课时,我们讲解了 RPC 的相关概念和常见的 RPC 框架。其中, Go RPC 是指 Go 语言原生支持的 RPC 框架,它虽然简单但却十分经典,非常适合作为你后续深入了解 RPC 框架时的研究对象。
在上一课时,我们讲解了 RPC 的相关概念和常见的 RPC 框架。其中, Go RPC 是指 Go 语言原生支持的 RPC 框架,它虽然简单但却十分经典,非常适合作为你后续深入了解 RPC 框架时的研究对象。
今天的课程我们继续讨论 Netty 实现高性能的另一个高阶特性——零拷贝。零拷贝是一个耳熟能详的词语,在 Linux、Kafka、RocketMQ 等知名的产品中都有使用,通常用于提升 I/O 性能。而且零拷贝也是面试过程中的高频问题,那么你知道零拷贝体现在哪些地方吗?Netty 的零拷贝技术又是如何实现的呢?接下来我们就针对 Netty 零拷贝特性进行详细地分析。
上一讲,我们介绍了 Spring Data MongoDB Reactive 组件,它是 Spring Data MongoDB 的响应式版本。今天我们要讨论的是 Spring Data Redis Reactive 组件,它专门针对 Redis 这款 NoSQL 数据库提供了响应式编程能力。
使用该组件的步骤与 MongoDB 类似,我们同样围绕开发环境的初始化、Repository 的创建以及与 Service 层之间的集成这些步骤展开讨论,并结合 ReactiveSpringCSS 案例来集成这款主流的缓存中间件。
StatementHandler 接口是 MyBatis 中非常重要的一个接口,其实现类完成 SQL 语句执行中最核心的一系列操作,这也是后面我们要介绍的 Executor 接口实现的基础。
StatementHandler 接口的定义如下图所示:
StatementHandler 接口中定义的方法
回顾一下 06 课时到 15 课时,我们分别了解缓冲、缓存、池化对象、大对象复用、并行计算、锁优化、NIO 等优化方法,它们对性能的提升往往是质的飞跃。
我们都知道,APM 数据是海量的,项目初期很难申请到足够的资源,让监控服务去承接这些海量的监控数据,所以就需要对海量数据进行采样了。
但开启采样后,免不了会带来数据丢失。如果排查故障问题时,发现丢弃的监控数据过多,就会让 APM 建设的口碑越来越差,使用的人越来越少,这样资源就更申请不到了,从而最后导致了 APM 的形同虚设。
我们在前面讲过,稀缺性概念,买房一定要选择稀缺性的房源。经济学还有一个重要的概念就是机会成本。所以这节课,我们聊聊机会成本,然后再谈买卖房子的机会成本。, , 什么是机会成本?, , 什么叫作机会成本?举个例子,比如你先在听我的课程,这个时间段,你就不能干别的事情。你不干别的事,你不赚别的钱,就是你今天听我课的机会成本。, , 准确来说,机会成本的定义是:你干这件事就不能干那件事,你不干那件事的损失,就是你干这件事的机会成本。这个概念不好理解。接下来我们举例进一步说明。, , 例子 1:运动员和读大学的机会成本, , 在运动赛场获得冠军的运动员,有一些是当年放弃了读大学的机会。那他去参加国际比赛拿到冠军,冠军的机会成本是什么?就是他没有上大学。反之,如果他选择了上大学,没得冠军就是他上学的机会成本。, , 在两者之间如何做选择,他考虑的应是机会成本。有人趁自己年轻努力拿到冠军,实现人生理想的同时也收获了很多金钱。之后再读大学,将来既有工作,又有经济上的富裕。他认为这非常划算。反过来,一个人做运动员很多年,可惜他不是这个料,既没拿到冠军,也没上成大学。我们就说,他做运动员的机会成本太大。因为他耽误了上学的机会。, , 在清华,我曾经教过奥运冠军的学生们。他们常说,老师,我们不是不想好好学习,好好听课,只是我们的心思不在这上面,我们必须全力以赴盯着打比赛,如果打不出好成绩,我们的职业生涯就完了。我说这就是机会成本的概念。你们确实要做出选择。看哪个机会成本更大就放弃哪个,你们要选择机会成本最小获得产出最大的那件事来干。, , 例子 2:北大听课, , 2000 年后我在北大上课,有一个老板说,老师,听你一天课,我没有去谈一笔生意,我少赚了 10 万块钱。我说,确实,你今天没有赚的钱是听我课的机会成本。但是,如果你没听我的课,如果你的投资失败,损失的可能不止 10 万元。, , 那这位老板要选择听课,还是去谈生意呢?他要比较的是机会成本。要看哪个机会成本最小,让他收益最大化。, , 例子 3:创作我的经济学课程, , 又比如,我忙了八个多月的时间做课程,这八个月我放弃了做别的工作。我在别处没赚的钱,就是我做这个课程的机会成本。我要比较的是,做哪个工作让机会成本更小。这里举了三个例子,你听明白什么是机会成本这个概念了吗?, , 简单总结一下,我们每天都面临着选择。你要选择的是,机会成本最小,获得产出最大的事情。只有选择对了,你的人生才能够经济地生活。, , 经济学的重要概念,一个是稀缺、一个是机会成本。, , 你每天做事的时候,都可以想一想,我做这件事,它稀缺吗?我该选择吗?我做这样事情的机会成本大吗?为什么有些人做事情容易成功,而有些人做事情经常失败呢?就是很多人没有经济学的头脑,不会用经济学理念指导自己的人生,他就不会做出正确选择。, , 如果你懂得选择稀缺,选择机会成本小,获得产出大的事情。那你的人生就会更经济,更能做正确的事。你想想看,人一生的时间是稀缺的,把这么稀缺的时间浪费在机会成本很大的事情上,那你的一生不就收效甚微了么?, , 买房要考虑机会成本, , 2016 年我在清华给企业班学员们上课,在上课前我正在教室里备课,就听到一个企业家说:大家好好听韩老师的课,在 2006 年我来清华听课,当时韩老师说,北京房价未来会涨,可我没买房,回到家乡投资了 4000 万,我现在全赔了,损失了 4000 万。, , 我抬头问到,老总,你赔的是 4000 万吗?如果你在北京买房,当时房价不到 1 万一平,现在很多都已经超过 5 万了。您的 4000 万可以买下 4000 万平米的房子,现在这些房子的价值是两个亿,所以你赔的不是 4000 万,而是 2 个亿。这个老总他还没有机会成本的概念。他回去投资这件事的机会成本太大了。, , 那么说到买房,那什么是买房的机会成本?, , 假如你有一笔钱,如果没有买房,去干别的事,那没买房赔的钱是你干那件事的机会成本。那这笔钱是用来买房,还是干别的事情,这就要考虑机会成本了。如果你是刚需,就是你需要住,我的观点是:你何时买房都是对的。什么是刚需,就是这房子是你和你家人都需要住的,这就是刚需。, , 比如说,一套房 100 万元,首付 30 万,贷款 70 万。反正你是自己住着,房价跌了你也住,房价涨了你也的住,房价涨跌跟你没有什么关系。如果房价涨了你把房子卖了,可以多得到很多钱,但是除非你不再买房了,假如你再买房,还要花同样或者更多钱才能买回来。所以,当我们只有一套房时,房价的涨跌和我们关系不大,只是一个心理上的感觉,房价涨了,我的财富增加了。如果你问,我没有买房,我手里连一套房都没有,那房价的涨跌就和我有关系了吧?, , 如果你要买第一套,买房是刚需,就不要犹豫了,任何时候买房都不为错。年轻人首付不够,可以找父母借一点钱,以后还给他们。以后工资会涨,但房价涨幅远远高于工资的涨幅。我曾经给过很多年轻人这样的建议,他们都在房价低的时候贷款买了房子。, , 在清华读 MBA 的学生,在我班上听课的大多数人,都在北京房价低的时候买房了。2016 年我和这些同学聚会时,他们说:老师,非常感谢你,在北京房价低的时候建议我们买房,这十年北京的房价涨了这么多,如果当时我们没买房子,现在我们肯定就买不起了。, , 再分享一个关于买房卖房的故事。2000 年前后,我在北大上课,那天班里来的企业家很多。下课后,坐在后排有一个香港的学员说:老师,我在香港有一套房子,我想卖掉。, , 我当时跟他说千万别卖,我问他,老板你为什么卖房呢?他说,香港的房价太高了,我担心香港的房产会跌,我想卖掉房产,躲过房地产泡沫的风险。我又问他:你怕香港的房价跌,你不怕港币贬值吗?如果你把香港的房子卖了,就变成港币了。你担心香港的房子会跌,你就不担心港币贬值吗?而且我判断,港币贬值的速度比港产更快!, , 但是听完我的分析后,他仍然说,我就要卖房,你给我一个建议吧。那我给了他三句话的建议。, , 第一,你卖了香港的房产,就变成港币了,但是你不能拿着港币,因为港币会贬值。, , 第二,你把港币兑换成人民币,当时港币贵人民币便宜,你可以换多一点人民币,但是人民币也是会贬值的。, , 第三,你拿着人民币到深圳来买一套房子,未来深圳房产会涨,而且人民币和港币相比涨的可能性更高。把人民币换成港币,你再回到香港买一套房子,估计很很难买到。, , 那后来的结果如何呢?是香港房产跌了,还是港币跌了?现实和他想的正好想法,我们说,是香港的房产升值了,港币跌了40%,而香港的房产价格升了一倍。, , 这个故事说明了什么?一种资产和一种币值不是一回事。它们之间可以交换,但是各有各的价格走势。就像港产和港币不是一回事,人民币和人民币资产也不是一回事。这个香港人卖房这件事的机会成本太大了。, , 总结, , 我们来总结一下本讲的重点:机会成本这个概念非常重要,买房或卖房时都要考虑机会成本。, , 最后再留一道思考题:买房时要注意一些什么呢?欢迎写在留言区,我们一起交流。, , 你是买现房还是买起房?, , 你是买精装还是毛坯房?, , 你是贷款买房还是现金买房?, , -– ### 精选评论 ##### **1231: > 不管是现房还是期房,需要看自己的需求是否紧急,如果需要尽快入住,那买现房,如果不急需,买期房;只要是刚需,看准了标的就贷款买,也要考虑时间成本,房价上涨的速度毛坯还是精装,结合自身情况看,有时间装修就买毛坯,没时间就买精装;时间成本。如果不自住,只是投资,坐等升职,那最好买毛坯;如果需要出租,建议买精装;如果是自住,需要结合有没有时间和精力来装修
我们知道整个 SQL 解析引擎可以分成三个阶段(如下图所示),上一课时我们主要介绍了 ShardingSphere 中 SQL 解析引擎的第一个阶段,那么今天我将承接上一课时,继续讲解 ShardingSphere 中 SQL 解析流程中剩余的两个阶段。
通过前面的学习,相信你已经见识到了 Kubernetes 的强大能力,它能帮你轻松管理大规模的容器服务,尤其是面对复杂的环境时,比如节点异常、容器异常退出等,Kubernetes 内部的 Service、Deployment 会动态地进行调整,比如增加新的副本、关联新的 Pod 等。
跨平台其实是一个老生常谈的话题,技术方案也是历经变迁,但始终热点不断,究其原因有二:
首先,移动端原生技术需要配备 iOS 和 Android 两套团队和技术栈,且存在发版周期限制,开发效率上存在天然缺陷;