摘要:
java单例五种实现模式 饿汉式(线程安全,调用效率高,但是不能延时加载) 一上来就把单例对象创建出来了,要用的时候直接返回即可,这种可以说是单例模式中最简单的一种实现方式。但是问题也比较明显。单例在还没有使用到的时候,初始化就已经完成了。也就是说,如果程序从头到位都没用使用这个单例的话,单例的对象 阅读全文
摘要:
转载:https://segmentfault.com/a/1190000017568892 阅读全文
摘要:
Integer常量池 问题1 问题2 问题3 解释 使用==的情况: 如果比较Integer变量,默认比较的是地址值。 Java的Integer维护了从 128~127的缓存池 如果比较的某一边有操作表达式(例如a+b),那么比较的是具体数值 使用equals()的情况: 无论是Integer还是L 阅读全文
摘要:
一致性哈希 概述 在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。 但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候 阅读全文
摘要:
CAP原理 概述 CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题。 CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能 阅读全文
摘要:
Redis内存模型 Redis内存统计 在客户端通过redis cli连接服务器后(后面如无特殊说明,客户端一律使用redis cli),通过info命令可以查看内存使用情况 info memory info命令可以显示redis服务器的许多信息,包括服务器基本信息、CPU、内存、持久化、客户端连接 阅读全文
摘要:
rabbitmq 架构图 RabbitMQ 中的 broker 是指什么?cluster 又是指什么 broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据 阅读全文
摘要:
Nginx 负载均衡 概述 Nginx负载均衡提供上游服务器(真实业务逻辑访问的服务器),负载均衡、故障转移、失败重试、容错、健康检查等。 当上游服务器(真实业务逻辑访问的服务器)发生故障时,可以转移到其他上游服务器(真实业务逻辑访问的服务器)。 配置 负载均衡算法 负载均衡算法 每个请求按时间顺序 阅读全文