随笔分类 - Java相关
一切和Java沾边的知识。
摘要:这篇文章主要讨论数据压缩,数据压缩不仅可以节省存储空间,还可以提升网络传输性能,不同的压缩算法有不同的压缩比和压缩耗时,我们需要根据项目需求,选择不同的压缩算法。
阅读全文
摘要:这篇文章主要描述硬件同步原语,它是由计算机硬件提供的一组原子操作。 我们常见的原语操作有CAS和FAA两种。在某些情景下,我们可以使用它来替代锁,从而更加安全高效的操作数据。
阅读全文
摘要:这篇文章主要关注分布式锁,包括加锁和解锁的过程,锁的用法,加锁带来的代价,对性能的影响以及如何避免死锁。
阅读全文
摘要:这篇文章主要聊一下缓存,如何使用缓存来加速你的系统,减少磁盘 IO。按照读写性质,缓存可以分为读写缓存和只读缓存,两种缓存有各自的适用场景。
阅读全文
摘要:这篇文章主要用来讨论Kafka是如何做到高性能的,包括使用批处理方式处理消息,使用顺序读写的方式使用磁盘,利用PageCache缓存数据并减少IO操作,使用零拷贝技术加速消费流程。
阅读全文
摘要:这篇文章主要描述服务在高并发和高吞吐场景下爆发的内存相关问题,包括内存占用过高、内存溢出、内存回收效率低等,并针对这些问题提出了建议。
阅读全文
摘要:这篇文章主要描述应用程序之间的通信协议,包括进行数据“断句”的两种不同方法,以及在应用协议层面实现高性能的双工通信。
阅读全文
摘要:这篇文章主要描述如何解决消息重发的问题,目前主流的消息队列产品都采用了At least once的服务质量,这就导致了很难避免消息重发的情况,我们可以将消费者业务逻辑设计成幂等服务来解决消息重发问题。
阅读全文
摘要:这篇文章主要描述如何在使用消息队列时避免丢消息,包括检测消息丢失的方法以及消息从生产到完成消费的过程中,经历的生产、存储和消费这三个阶段是分别如何保证消息可靠传递的。
阅读全文
摘要:这篇文章描述如何使用消息队列中的事务消息机制实现分布式事务。事务消息适用于需要异步更新数据,并且对数据实时性要求不太高的场景。
阅读全文
摘要:这篇文章主要描述消息队列中的一些基本概念,我们在使用不同的消息队列产品时,会遇到不同的“名词”,今天我们今天来聊聊消息队列发展历史,以及一些相关基本概念。
阅读全文
摘要:这篇文章主要描述如何进行消息队列产品选型,包括产品选型需要考虑的因素、三种比较流行的消息队列产品的优缺点以及如何根据我们的使用场景选择合适的消息队列产品。
阅读全文
摘要:这篇文章主要描述我们消息队列的使用场景,主要包括三种场景:异步处理、流量控制和服务解耦。引入消息队列后,也会带来通信延迟、系统复杂度以及可能的数据不一致问题。
阅读全文
摘要:这篇文章主要讨论分布式系统中的网络分区问题,网络分区是指在分布式集群中,节点之间由于网络不通,导致集群中的节点形成不同的子集,子集中的节点可以相互通信,子集之间的网络是不通的。
阅读全文
摘要:这篇文章主要讨论分布式系统中的故障恢复和常用的故障检测方法,包括固定心跳检测和根据历史心跳信息预测故障检测方法。
阅读全文
摘要:这篇文章主要描述故障隔离,设计良好的故障隔离策略,可以提高系统的可用性,避免出现大规模故障,甚至瘫痪。常用的故障隔离策略包括线程级隔离、进程级隔离和资源隔离。
阅读全文
摘要:这篇文章主要描述分布式系统中的流量控制,当有突发大流量进入时,如何控制流量对于保证系统高可靠非常重要。常见的流量控制策略包括漏桶策略和令牌桶策略。
阅读全文
摘要:这篇文章主要讨论负载均衡及其常用策略。负载均衡是分布式系统中非常重要的技术,它包括请求负载均衡和数据负载均衡,通过负载均衡,可以有效提高系统的并发处理能力。
阅读全文
摘要:这篇文章主要描述分布式数据缓存技术,它将常用数据存储到离用户近、离应用近的位置,以减少远程数据传输的延迟,提升系统性能。
阅读全文
摘要:这篇文章主要关注分布式系统中的数据复制,它提高了系统的可用性和可靠性,保证业务正常运行。常见的数据复制方法包括同步复制技术、异步复制技术和半同步复制技术。
阅读全文