17__ReplicaStateMachine:揭秘副本状态机实现原理

你好,我是胡夕。今天我们讲副本状态机。

前几节课,在讲 Controller、TopicDeletionManager 时,我反复提到副本状态机和分区状态机这两个组件。现在,你应该知道了,它们分别管理着 Kafka 集群中所有副本和分区的状态转换,但是,你知道副本和分区到底都有哪些状态吗?

17__SingleFlight_和_CyclicBarrier:请求合并和循环栅栏该怎么用?

你好,我是鸟窝。

这节课,我来给你介绍两个非常重要的扩展并发原语:SingleFlight 和 CyclicBarrier。SingleFlight 的作用是将并发请求合并成一个请求,以减少对下层服务的压力;而 CyclicBarrier 是一个可重用的栅栏并发原语,用来控制一组请求同时执行的数据结构。

17__TCP并不总是“可靠”的?

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

在前面一讲中,我们讲到如何理解 TCP 数据流的本质,进而引出了报文格式和解析。在这一讲里,我们讨论通过如何增强读写操作,以处理各种“不可靠”的场景。

17__WebAPI:XMLHttpRequest是怎么实现的?

上一篇文章中我们介绍了 setTimeout 是如何结合渲染进程的循环系统工作的,那本篇文章我们就继续介绍另外一种类型的 WebAPI——XMLHttpRequest。

自从网页中引入了 JavaScript,我们就可以操作 DOM 树中任意一个节点,例如隐藏 / 显示节点、改变颜色、获得或改变文本内容、为元素添加事件响应函数等等,几乎可以“为所欲为”了。

17__案例篇:如何利用系统缓存优化程序的运行效率?

你好,我是倪朋飞。

上一节,我们学习了内存性能中 Buffer 和 Cache 的概念。简单复习一下,Buffer 和 Cache 的设计目的,是为了提升系统的 I/O 性能。它们利用内存,充当起慢速磁盘与快速 CPU 之间的桥梁,可以加速 I/O 的访问速度。

17__别以为“自动挡”就不可能出现OOM

你好,我是朱晔。今天,我要和你分享的主题是,别以为“自动挡”就不可能出现 OOM。

这里的“自动挡”,是我对 Java 自动垃圾收集器的戏称。的确,经过这么多年的发展,Java 的垃圾收集器已经非常成熟了。有了自动垃圾收集器,绝大多数情况下我们写程序时可以专注于业务逻辑,无需过多考虑对象的分配和释放,一般也不会出现 OOM。

17__并发容器的使用:识别不同场景下最优容器

你好,我是刘超。

在并发编程中,我们经常会用到容器。今天我要和你分享的话题就是:在不同场景下我们该如何选择最优容器。

并发场景下的 Map 容器

假设我们现在要给一个电商系统设计一个简单的统计商品销量 TOP 10 的功能。常规情况下,我们是用一个哈希表来存储商品和销量键值对,然后使用排序获得销量前十的商品。在这里,哈希表是实现该功能的关键。那么请思考一下,如果要你设计这个功能,你会使用哪个容器呢?

17__不一样的体验:交互设计和页面布局

你好,我是四火。

前几讲我们一直在 JavaScript 的代码中游走,这一讲我们来换换脑子,聊一聊界面设计,讲一讲交互和布局。这部分对于基于 Web 的全栈工程师来说,不只是技术栈特殊的一部分,还是一个能够给个人发展格局带来更多可能的部分。

17__部署管理:低风险的部署发布策略

你好,我是石雪峰,今天我来跟你聊聊部署管理。

在 DevOps 年度状态报告中,有四个核心的结果指标,其中仅“部署”这一项就占了两个关键指标,分别是部署频率部署失败率。顺便提一下,另外两个指标是前置时长平均故障修复时长

17__测试左移:测试如何应对新的开发模式?

你好,我是葛俊。今天,我们来聊聊测试这个话题。

为什么需要测试左移,测试右移?

测试可以保证产品质量,重要性不言而喻。但,要做好测试也比较困难,需要克服很多挑战。尤其是,持续交付、敏捷开发等开发模式为传统软件测试方式带来了更大的时间压力。