05 2021 档案
摘要:博主之前做的一个项目,数据依赖三个下游核心。可是呀,核心很烂,两个核心响应在3,400毫秒,一个在1秒以上。 吐槽之后,考虑一下如何提升接口的响应时间。 1. 串行转并发,使用线程池并发处理请求 2. 同步转异步,使用消息队列 3. 使用缓存,读写分离 4. 减少日志打印,留意日志打印中的序列化、长
阅读全文
摘要:1. jps 查看正在运行的JVM进程 2. jstat 监视虚拟机运行时状态信息,显示虚拟机进程中的类装载、内存、垃圾收集、JIT编译等数据 3. jmap 生成heap dump文件,除了这个命令还可以配置-XX:+HeapDumpOnOutOfMemoryError参数让虚拟机出现OOM时自动
阅读全文
摘要:1. 继承体系 FutureTask实现了Runnable接口,实现了run() 方法,可以交给线程/线程池执行。实现了Future接口,实现了get()方法,可以获取执行的结果。 2. 重要属性 /** * Possible state transitions: * NEW -> COMPLETI
阅读全文
摘要:4.1 重要理论 4.1.1 数据模型 znode zk数据存储结构是一个树形结构,根节点下挂载子节点,每个节点都是一个znode,是zk中数据的最小单元,每个znode都可以保存数据 1. 节点类型 持久节点:节点被创建后一直保存,直到删除 持久顺序节点:父节点为儿子节点记录创建的顺序,即创建时在
阅读全文
摘要:1.1 什么Zookeeper? 开源的分布式应用程序协调服务器,为分布式系统提供一致性服务。通过Paxos算法和ZAB协议完成,主要功能包括:配置维护、域名服务、分布式同步、集群管理 1.2 一致性 1.2.1 顺序一致性 同一个客户端发起的多个事务请求,最终会严格按照其发起顺序记录到zk中 1.
阅读全文
摘要:1. 使用场景:Kafka适合日志处理;RocketMQ适合业务处理 2. 性能:Kafka吞吐量更高,单机百万/秒;RocketMQ单机10万/秒。 因为Kafka一个topic有很多partition,代表很多目录,每个目录下有很多segment,每个代表一个消息文件,而RocketMQ存储消息
阅读全文
摘要:1.1 消息路由策略 生产者生产Record,其中包含key和value,key用于确定存放在哪个partition,value是真正的消息。 1. 指定了partition 2. 未指定partition,但指定了key,通过key的哈希值和partition的数量取模,计算索引 3. 都未指定,
阅读全文
摘要:1.1 应用场景 日志聚合、数据监控、流处理等等 1.2 高吞吐率实现 Kafka将消息写入到低速大容量的硬盘,但仍然保持了超高的吞吐率,是因为: 顺序读写:在segment中采用顺序写 零拷贝:生产者、消费者对Kafka中的消息操作采用零拷贝实现 批量发送:Kafka允许使用批量消息发送模式 消息
阅读全文
摘要:一、JVM内存调优 调优的目的是减少GC频率和Full GC的次数 1. 什么是Full GC 对年轻代、老年代和永久代进行回收。Full GC的整个过程都会暂停用户线程。 Young GC(Minor GC):回收年轻代、Old GC(Major GC):回收老年代 2. 产生Full GC的原因
阅读全文

浙公网安备 33010602011771号