背景
最近对并发底层实现比较有兴趣,正巧看到这篇译文不错,这里记录一下[13]。
RabbitMQ 是靠集群实现高可用的,不过集群并不能完整的提供高可用服务,还需要应用程序侧(即生产者、消费者)实现与集群故障重连的逻辑。对于更高的可用性,可以使用 RabbitMQ 的插件来实现(通过部署多集群,消息复制的方式来保证)。
又发现一本不错的小书《深入理解 Java 内存模型》,趁着昨天周六一口气读完,虽然篇幅只有区区70页,可受益颇多。由于原文短小精悍,为了预留合理的上下文以助于理解,本文保留了大部分原文,并且在关键处使用笔者自己的理解对原文进行再解释(以表达方式再排列、语义扩充等方法,尽量在语义上确保大于等于原意)。好了废话不多说,我们开始吧~
最近写了一些 java 核心技术的文章放在 WikiNotes里,有些体会也想在这里记录一下。 这篇文章主要讲述jdk本身的源码该如何阅读,关于各种框架的源码阅读我们后面再一起探讨。
WeakHashMap是一种弱引用map,内部的key会存储为弱引用,当jvm gc的时候,如果这些key没有强引用存在的话,会被gc回收掉,下一次当我们操作map的时候会把对应的Entry整个删除掉,基于这种特性,WeakHashMap特别适用于缓存处理。