使用自定义 TCP 协议进行传输就会避免上面这个问题,极大地减轻了传输数据的开销。 这也就是为什么通常会采用自定义 TCP 协议的 RPC 来进行进行服务调用的真正原因。 除此之外,成熟的 RPC 框架还提供好了“服务自动注册与发现”、“...
1. redis可以容纳多少个键值对?单个键值的大小限制是? 最多容纳 2^32 个key redis的key和string类型value限制均为512MB。 string类型:一个String类型的value最大可以存储512M list...
泛型的好处 提供了一种类型安全检测机制 提升程序可读性 通配符 通配符的出现是为了指定泛型中的类型范围。 通配符有 3 种形式。 <?>被称作无限定的通配符。 <? extends T>被称作有上限的通配符。 <? super T>被...
结论 Java中单精度和双精度采用IEEE 754表示,能有效运算的范围大致是小数点后7位和15位 如果Java中默认的float和double不能满足你的精度要求,可以用BigDecimal,理论上它的精度只受限制与机器内存 如...
主从能实现读能力进行扩展,但无法自动故障切换、写能力和存储能力; 哨兵能自动故障切换,但无法对写能力和存储能力是无法进行扩展; 集群能读能力、写能力、存储能力进行扩展,也能自动故障切换 前言 上文我们聊了基于Sentinel的Redis高可...
排除应用之外的影响因素: top(cpu)、free(内存)、df(磁盘)、dstat(网络流量)、pstack、vmstat、st1race(底层系统调用) top 定位CPU 最高的进程 top -Hp pid...
系统性能优化之并发编程 提升系统的QPS和吞吐量
1. 使用synchronized 饱汉:双重检查锁定、饿汉、静态内部类、枚举 都属于利用synchronized同步原理实现 1.1 饱汉:双重检查锁定(double-checked locking) public class...
Linux线程的状态与调度 Java线程的6种状态及切换 Java 线程的生命周期中,在 Thread 类里有一个枚举类型 State,定义了线程的几种状态,分别有: New Runnable Blocked Waiting Timed...
1. 缓存雪崩 1.1 什么是缓存雪崩? 简介:缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。 1.2 有哪些解决办法? 事前:尽量保证整个 redis 集群的高可用性,发现机器宕机尽快...