随笔分类 - Java基础
摘要:最近一段时间在做双十一的优化,对于缓存的使用和改造渐渐有了一些思考,记录一下 缓存的使用、选择 读简单,写复杂的业务最好放在写入端 读复杂,写简单的业务逻辑放在读取端 根据业务的类型,选择是使用集中式缓存还是分布式的 key value的规则 基础的cache需要关注的事:替换策略等等。。。 缓存导
阅读全文
摘要:[TOC] 概述: 本次主要是分析cache的源码,基本概念官方简介即可。 基本类图: 在官方的文档说明中,Guava Cache实现了三种加载缓存的方式: LoadingCache在构建缓存的时候,使用build方法内部调用CacheLoader方法加载数据 在使用get方法的时候,如果缓存不存在
阅读全文
摘要:
阅读全文
摘要:Guava Maps 用法 不定期更新 1. 初始化 @Test public void test_init(){ Map map = Maps.newHashMap(); } 2. 将List转为Map,这个特性主要针对的场景是有一组对象,它们在某个属性上分别有独一无二的值,而我们希望能够按照这个
阅读全文
摘要:zk集群运行过程中,服务器选举的源码剖析 在zk服务器集群启动过程中,经QuorumPeerMain中,不光会创建ZooKeeperServer对象,同时会生成QuorumPeer对象,代表了ZooKeeper集群中的一台机器。在整个机器运行期间,负责维护该机器的运行状态,同时会根据情况发起Lead
阅读全文
摘要:zookeeper客户端Watcher管理 在zookeeper的设计中,有分布式通知的功能点,方式则是通过Watcher机制。基本的模式和回调一致,但是其中有些设计巧妙的地方。回调的方式,大部分流程都是如下: + 客户端向服务端注册一个Watcher监听 + 当服务端的一些执行事件发生后,触发这个
阅读全文
摘要:zookeeper应用 发布订阅 zk实现的方式是推拉结合,Client想服务端注册自己需要关注的节点,一旦节点的数据发生变更,那么Server会向对应的客户端发送Watcher事件通知,客户端接收到这个消息后,需要主动到服务端获取最新的数据。 目前很多应用使用发布订阅都不是用zk的这种方式,比较典
阅读全文
摘要:maven错误排查经验 maven依赖的仲裁原则 + 有parent的情况先合并parent中的dependencies和dependencyManagement,到当前pom的dependencies和dependencyManagement,依照上层覆盖下层原则 + 不同路径深度,短路径优先;
阅读全文
摘要:概述 在经过编译后.java文件会生成对应的.class文件,但需要执行的时候,虚拟机首先会从class文件中读取必要的信息,而这个过程则成为类加载。 类加载时类的生命周期的一部分,也是它的初始步骤。 对应于C语言等,这个过程其实就是装载的过程,但稍有不同的是,C语言装载的是经过编译连接后的文件,而
阅读全文
摘要:很多文章都记录了TreeSet、和HashSet的各种比较,但是很少有人去指出什么情况下应该使用TreeSet以下摘自http://stackoverflow.com/questions/1463284/hashset-vs-treeset#comment14600884_4464394感觉里面有几...
阅读全文

浙公网安备 33010602011771号