上一页 1 2 3 4 5 6 ··· 11 下一页
摘要: 1.1 什么Zookeeper? 开源的分布式应用程序协调服务器,为分布式系统提供一致性服务。通过Paxos算法和ZAB协议完成,主要功能包括:配置维护、域名服务、分布式同步、集群管理 1.2 一致性 1.2.1 顺序一致性 同一个客户端发起的多个事务请求,最终会严格按照其发起顺序记录到zk中 1. 阅读全文
posted @ 2021-05-23 23:29 walker993 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 1. 使用场景:Kafka适合日志处理;RocketMQ适合业务处理 2. 性能:Kafka吞吐量更高,单机百万/秒;RocketMQ单机10万/秒。 因为Kafka一个topic有很多partition,代表很多目录,每个目录下有很多segment,每个代表一个消息文件,而RocketMQ存储消息 阅读全文
posted @ 2021-05-23 19:46 walker993 阅读(2105) 评论(0) 推荐(0) 编辑
摘要: 1.1 消息路由策略 生产者生产Record,其中包含key和value,key用于确定存放在哪个partition,value是真正的消息。 1. 指定了partition 2. 未指定partition,但指定了key,通过key的哈希值和partition的数量取模,计算索引 3. 都未指定, 阅读全文
posted @ 2021-05-23 19:09 walker993 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 1.1 应用场景 日志聚合、数据监控、流处理等等 1.2 高吞吐率实现 Kafka将消息写入到低速大容量的硬盘,但仍然保持了超高的吞吐率,是因为: 顺序读写:在segment中采用顺序写 零拷贝:生产者、消费者对Kafka中的消息操作采用零拷贝实现 批量发送:Kafka允许使用批量消息发送模式 消息 阅读全文
posted @ 2021-05-23 16:16 walker993 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 一、JVM内存调优 调优的目的是减少GC频率和Full GC的次数 1. 什么是Full GC 对年轻代、老年代和永久代进行回收。Full GC的整个过程都会暂停用户线程。 Young GC(Minor GC):回收年轻代、Old GC(Major GC):回收老年代 2. 产生Full GC的原因 阅读全文
posted @ 2021-05-04 18:28 walker993 阅读(1121) 评论(0) 推荐(0) 编辑
摘要: 线上系统突然运行缓慢,如果导致系统不可用,首先导出jsatck和内存信息,重启系统,尽快保证系统的可用性。 1、出现问题的原因 一种是由计算导致的CPU使用过高,一种是由内存不足垃圾回收导致的CPU使用过高。 1. 频繁发生FULL GC 2. 线程太多,上下文不停切换,比如大量线程激烈的锁竞争,线 阅读全文
posted @ 2021-04-28 17:15 walker993 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 13.1 同步阻塞调用 13.2 异步Future private void FutureTest() { //请求 Future<?> userInfoTask = POOL.submit(() -> {/**请求客户信息**/}); Future<?> orderInfoTask = POOL. 阅读全文
posted @ 2021-04-26 21:54 walker993 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 每个用户请求进入服务,我们使用拦截器做一些前置处理,譬如查询用户的个人信息,将结果保存到线程本地变量中。在整个请求中,都能随时从堆缓存中拿到这部分信息。 相信大家也经常使用这种办法,但是某次遇到一个bug,那就是在主线程中使用异步线程去查询其他系统的信息,而异步线程是没有存这个本地变量的!结果喜闻乐 阅读全文
posted @ 2021-04-26 21:27 walker993 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 整体分成三部分缓存:应用Nginx本地缓存、分布式缓存、Tomcat堆缓存。 每层都用来解决相关问题,第一层解决热点缓存的问题,第二层减少访问回源率,第三层防止相关缓存失效/崩溃之后的冲击 11.2 如何缓存数据 11.2.1 过期与不过期 过不过期应该根据业务和数据量等因素决定 不过期缓存的场景 阅读全文
posted @ 2021-04-25 18:40 walker993 阅读(1335) 评论(0) 推荐(0) 编辑
摘要: 让数据更贴近使用者 9.3 缓存回收策略 1. 基于空间:到达存储空间上限 2. 基于容量:缓存的条目超过上限 3. 基于时间 TTL(Time To Live):存活期,超过过期时间被回收 TTI(Time To Idle):空闲期,空闲多长时间被回收 4. 基于Java对象引用:软引用/弱引用引 阅读全文
posted @ 2021-04-25 16:31 walker993 阅读(83) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 11 下一页