16__分布式一致性(下):怎么理解最简单的分布式一致性算法?
你好,我是任杰。这一讲我想和你聊一聊,怎么理解最简单的分布式一致性算法 Raft。
在第 14 节课里,我们学习了在有容灾的分布式环境下的各种不同一致性情况,其中最重要的是线性一致性。线性一致性有非常多的好处,但是它的实现却非常困难。20 多年前,计算机科学家终于找到了一个算法,但是非常晦涩难懂。
你好,我是任杰。这一讲我想和你聊一聊,怎么理解最简单的分布式一致性算法 Raft。
在第 14 节课里,我们学习了在有容灾的分布式环境下的各种不同一致性情况,其中最重要的是线性一致性。线性一致性有非常多的好处,但是它的实现却非常困难。20 多年前,计算机科学家终于找到了一个算法,但是非常晦涩难懂。
你好,我是小麥。这节课我们讲一讲风光应该怎么拍。
在这门课刚上线的时候,我收到了一条留言:
“小麥老师好,我是一个退休老头,买了相机(佳能 6Dⅱ/24-70/F4)一年了。我喜欢游山逛景,自认为审美观点很好,但是,自从拿了相机去拍摄,马上就不知道啥是美,在哪里拍照是美,知道了摄影与拍照不是一回事,汗颜啦啦啦啦!”
上一讲,我们讲了用“浮点数”这样的数据形式,来表示一个不能确定大小的数据范围。浮点数可以大到 3.40×10383.40×1038
你好,我是葛俊。今天,我们来聊一聊,如何使用云计算来提高研发效能。
自从 AWS 的出现,云的崛起已经成为软件开发不可阻挡的趋势。它逐渐像水和电一样,成为软件开发的一项基础设施。不容置疑的是,云极大地提升了软件研发的效能。
你好,我是王庆友,今天我来和你聊一聊如何打造高性能和可伸缩的系统。
在课程的第 11 讲,我和你介绍了,技术架构除了要保证系统的高可用,还要保证系统的高性能和可伸缩,并且能以低成本的方式落地。在实践中呢,高性能、可伸缩和低成本紧密相关,处理的手段也比较类似,这里我就放在一起来给你讲解。
你好,我是吴咏炜。
本讲我们将介绍函数对象,尤其是匿名函数对象——lambda 表达式。今天的内容说难不难,但可能跟你的日常思维方式有较大的区别,建议你一定要试验一下文中的代码(使用 xeus-cling 的同学要注意:xeus-cling 似乎不太喜欢有 lambda 的代码😓;遇到有问题时,还是只能回到普通的编译执行方式了)。
你好,我是石雪峰。
网上经常流传着一些有关偏见地图的段子,通俗点说,“偏见地图”就是说网友对世界其他地方的印象,比如很多人认为天津人都会说相声。
如果软件开发中也有偏见地图的话,那么,对不熟悉运维的人来说,提到运维团队,可能就觉得是维护环境的那帮人。于是,环境就成了软件行业的“头号背锅侠”。比如,线上出故障了,可以是环境配置错误;测试有些功能没测到,可以是没有测试环境;开发出 Bug 了,也不管三七二十一,先甩给环境再说……所以你看,好像什么问题都可能跟环境相关。这种没来由的偏见,也加剧了开发和运维之间的不信任。
你好,我是李玥。这节课,我们一起来聊一聊缓存策略。
现代的消息队列,都使用磁盘文件来存储消息。因为磁盘是一个持久化的存储,即使服务器掉电也不会丢失数据。绝大多数用于生产系统的服务器,都会使用多块儿磁盘组成磁盘阵列,这样不仅服务器掉电不会丢失数据,即使其中的一块儿磁盘发生故障,也可以把数据从其他磁盘中恢复出来。
你好,我是倪朋飞。
上一节,我们梳理了 Linux 内存管理的基本原理,并学会了用 free 和 top 等工具,来查看系统和进程的内存使用情况。
内存和 CPU 的关系非常紧密,而内存管理本身也是很复杂的机制,所以感觉知识很硬核、很难啃,都是正常的。但还是那句话,初学时不用非得理解所有内容,继续往后学,多理解相关的概念并配合一定的实践之后,再回头复习往往会容易不少。当然,基本功不容放弃。
在专栏的第一篇中,我曾经简单地介绍过即时编译。这是一项用来提升应用程序运行效率的技术。通常而言,代码会先被 Java 虚拟机解释执行,之后反复执行的热点代码则会被即时编译成为机器码,直接运行在底层硬件之上。