关于一致性 Hash 环应用于课时类型比例划分的对比和思考

2019.04.17

背景

要求

结论

划分方案

1. 按时间顺序划分

弊端

2. 按时间均分

弊端

3. 通过一致性 Hash 环划分

什么是 一致性 Hash 环?一致性哈希算法

真实节点

虚拟节点

HASH 环

4. 通过 HASH 散列并排序后按比例......

通过 JVM (HotSpot) 源码和汇编理解 Java volatile 实现原理

2019.04.09

一. volatile 作用是什么

二. 多线程之间的内存可见性是什么,如果不保证可见性会怎么样

三. 通过 JVM 源码和汇编看怎么保证的多线程间的可见性

1. 准备工作:

运行程序打印汇编代码的设置

2. 字节码

3. JVM 源码

4. 反编译为汇编(不带 vo......

RocketMQ - Producer 发送消息

2019.01.21

思考?

如果有一台 Broker (master) 宕机了会怎么样?

生产者写入会失败, 并重试两次(VKMQ也会重试,但是只有在 SYSTEM_BUSY 时重试)

如果 nameserver 全挂了,还能正常发消息吗?

发送消息时会先读取本地的 topicRouteInfo 缓存,......

RocketMQ - 已存在消费组如何直接消费最新消息

2019.01.21

一. 介绍:

innerConsumer.registerMessageListener((MessageListenerOrderly) (msgs, context) -> {

final ReceivedMessage receivedMessage = convertMessage(m......

Java 内存模型的理解

2019.01.17

程序计数器

由于 Java 支持多线程运行,所以当线程交叉运行的时候,需要根据程序计数器恢复运行时的状态,为了线程恢复时能继续按照正确的位置执行,所以每个线程都需要一个独立的程序计数器,各个线程之间的程序计数器相互不影响,独立存储,我们称这片区域为‘线程私有内存’,类似于 ThreadLoca......