18__Kafka中位移提交那些事儿

你好,我是胡夕。今天我们来聊聊 Kafka 中位移提交的那些事儿。

之前我们说过,Consumer 端有个位移的概念,它和消息在分区中的位移不是一回事儿,虽然它们的英文都是 Offset。今天我们要聊的位移是 Consumer 的消费位移,它记录了 Consumer 要消费的下一条消息的位移。这可能和你以前了解的有些出入,不过切记是下一条消息的位移,而不是目前最新消费消息的位移。

18__PartitionStateMachine:揭秘分区状态机实现原理

你好,我是胡夕。今天我们进入到分区状态机(PartitionStateMachine)源码的学习。

PartitionStateMachine 负责管理 Kafka 分区状态的转换,和 ReplicaStateMachine 是一脉相承的。从代码结构、实现功能和设计原理来看,二者都极为相似。上节课我们已经学过了 ReplicaStateMachine,相信你在学习这节课的 PartitionStateMachine 时,会轻松很多。

18__Spring_Data_常见错误

你好,我是傅健。

上一章节我们学习了 Spring Web 开发的常见错误。那么从这节课开始,我们将重点关注其他的一些 Spring 工具使用上的错误。

实际上,除了 Spring Web 外,Spring 还提供了很多其他好用的工具集,Spring Data 就是这样的存在。众所周知,基本上所有的项目都会用到数据库,所以 Spring 提供了对市场上主流数据库的贴心支持,我们不妨通过下面的列表快速浏览下:

18__StampedLock:有没有比读写锁更快的锁?

上一篇文章中,我们介绍了读写锁,学习完之后你应该已经知道“读写锁允许多个线程同时读共享变量,适用于读多写少的场景”。那在读多写少的场景中,还有没有更快的技术方案呢?还真有,Java 在 1.8 这个版本里,提供了一种叫 StampedLock 的锁,它的性能就比读写锁还要好。

下面我们就来介绍一下 StampedLock 的使用方法、内部工作原理以及在使用过程中需要注意的事项。

StampedLock 支持的三种锁模式

我们先来看看在使用上 StampedLock 和上一篇文章讲的 ReadWriteLock 有哪些区别。

18__To_B营销的阵地:我们在哪里说话,也很重要

你好,我是曹林。

在前面的课程中,我们谈到了如何去塑造一个产品体系,如何跟进产品全生命周期的市场品牌内容的构建和案例打造。这些都是非常重要的,但是不可忽略的一点是,今天我们在哪里说话,事实上也是非常重要的。

18__worker间的通信法宝:最重要的数据结构之shared_dict

你好,我是温铭。

前面我们讲过,在 Lua 中,table 是唯一的数据结构。与之对应的一个事实是,共享内存字典 shared dict,是你在 OpenResty 编程中最为重要的数据结构。它不仅支持数据的存放和读取,还支持原子计数和队列操作。

18__安全体系:如何建立可靠的安全体系?

你好,我是何小锋。上一讲我们学习了在 RPC 里面该如何提升单机资源的利用率,你要记住的关键点就一个,那就是“异步化”。调用方利用异步化机制实现并行调用多个服务,以缩短整个调用时间;而服务提供方则可以利用异步化把业务逻辑放到自定义线程池里面去执行,以提升单机的 OPS。

18__案例篇:内存泄漏了,我该如何定位和处理?

你好,我是倪朋飞。

通过前几节对内存基础的学习,我相信你对 Linux 内存的工作原理,已经有了初步了解。

对普通进程来说,能看到的其实是内核提供的虚拟内存,这些虚拟内存还需要通过页表,由系统映射为物理内存。

18__本地和全球化:你的偏好恰恰是他的禁忌

你好,我是 Rocky。

在圣经旧约中有这样一个故事:大洪水后人类建造通天的巴别塔导致上帝不悦,于是上帝搞乱了人类的语言,并把人类分散到世界各地。

这样一来,人类就开始有了宗教、文化、生活习惯、法律法规等诸多方面的差异性,给国际化的产品推广带来了非常大的挑战。其实就连我刚刚说的这句话在某种程度上由于文化差异,已经违反了宗教禁忌。

18__波动的响应延迟:如何应对变慢的Redis?(上)

你好,我是蒋德钧。

在 Redis 的实际部署应用中,有一个非常严重的问题,那就是 Redis 突然变慢了。一旦出现这个问题,不仅会直接影响用户的使用体验,还可能会影响到“旁人”,也就是和 Redis 在同一个业务系统中的其他系统,比如说数据库。