一文了解如何发现并解决Redis热key与大key问题 业务场景中经常会有各种热key或大key的问题,如果未能及时处理,可能会导致服务性能下降、用户体验变差,甚至引发大面积故障。所以本文针对这两个问题进行讲解,提供发现/监控的方法以及处理的解...
通用能力抽象选择SDK组件还是API服务? 大型的后端服务,当需要把一部分通用能力抽象出来,通常有两种方式:SDK组件或者API服务。对于有Java分库分表经验的同学来说,这两种形式的选择类似于Sharding-JDBC和MyCat...
痔疮肛瘘康复指南 这一篇是《记小辉人生中的第一刀》的续篇,上一篇博客是小辉在术后两周写的,在这之后到目前(术后两个月),过程中又收集了一些康复的tips,给正在经历恢复痛苦的病友们一些帮助。康复tips1....
记小辉人生中的第一刀 本篇是小辉趴在床上写完的博客,讲的是半个月前“肛裂+肛瘘+混合痔”手术到术后两周的康复过程以及一些注意事项和提示,给读者们的健康提个醒,欢迎转发给身边正在经历痛苦或者犹豫的朋友。希望大家都...
一个后端朋友面试一个月的经验总结 关于面经,小辉之前的文章可以查看《建议找工作的你看一下,无论是校招还是社招》本次分享一个后端朋友最近面试的经验总结,希望能对你有启发。面试概况朋友坐标北京,裸辞在家找工作。线上面试一共58...
一文理解Kafka如何做到高吞吐 如果对Kafka不了解的话,可以先看这篇博客《一文快速了解Kafka》。其余有关Kakfa的文章如下:《一文理解Kafka的选举机制与Rebalance机制》《一文理解Kafka重复消费的...
一文理解Maven如何解决依赖冲突与循环依赖 Maven中依赖冲突与循环依赖是开发过程中比较令人头疼的问题。依赖冲突首先介绍下Maven中依赖管理的策略。依赖传递:如果A依赖B,B依赖C,那么引入A,意味着B和C都会被引入。最近依赖策...
一文了解数据拆分与分库分表 数据库在业务体系不大的情况,一般都是单库出现,通过增加主从复制提高SLA。但当业务体量不断扩大,就需要考虑进行数据拆分来解决性能瓶颈问题。下面讨论的技术方案主要是从MySQL角度考虑的,其...
一文理解分布式事务的解决方案 单体数据库不涉及网络交互,所以在多表之间实现事务是比较简单的,这种事务称之为本地事务。但是单体数据库的性能达到瓶颈的时候,就需要分库,就会出现跨库(数据库实例)的事务需求;随着企业应用的规...
一文理解ThreadLocal 本文讲解ThreadLocal、InheritableThreadLocal与TransmittableThreadLocal。有关本文的实验代码,可以查看文末补充:“比较一下Thread...
一文理解Kafka的选举机制与Rebalance机制 Kafka是一个高性能,高容错,多副本,可复制的分布式消息系统。在整个系统中,涉及到多处选举机制,被不少人搞混,这里总结一下,本篇文章大概会从三个方面来讲解。控制器(Broker)选举机制...
一文理解Kafka重复消费的原因和解决方案 如果对Kafka不了解的话,可以先看这篇博客《一文快速了解Kafka》。在解释Kafka重复消费出现原因之前,列举一下Kafka中与消费者有关的几个重要配置参数。enable.auto.c...
一文理解MySQL的事务原则与事务隔离 事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。最典型的需要事务的场景是银行账户间的转账:假如 A 账户要给 B 账户转账 100 元,那么 A 账户要扣减 100 ...
一文理解MySQL的锁机制与死锁排查 MySQL的并发控制是在数据安全性和并发处理能力之间的权衡,通过不同的锁策略来决定对系统开销和性能的影响。基础知识为了后续的解释更加容易理解,这里列举一些基本概念的解释。悲观锁悲观锁指的是...
一文了解分布式系统ID生成策略 在分布式系统中,经常需要对大量的数据、消息、http请求等进行唯一标识,例如链路追踪traceId、身份标识号、订单流水号、操作记录流水号、优惠券id等等。这个时候数据库自增主键已经不能满...
一文快速了解进程、线程与协程 进程与线程进程是操作系统进行资源分配的基本单位,每个进程都有自己的独立内存空间。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相...
一文理解Kafka如何消息不丢失 本文只聚焦于Kafka系统的消息丢失,如果是生产环境出现数据丢失,排查时要先从链路上分段定位,缩小问题范围。如果对Kafka不了解的话,可以先看这篇博客《一文快速了解Kafka》。数据丢失...
一文理解如何实现接口的幂等性 幂等,这个词来源自数学领域。幂等性衍生到软件工程中,它的语义是指:函数/接口可以使用相同的参数重复执行, 不应该影响系统状态,也不会对系统造成改变。举一个简单的例子:正常设计的查询接口,不...
一文理解如何解决Kafka消息积压问题 通常情况下,企业中会采取轮询或者随机的方式,通过Kafka的producer向Kafka集群生产数据,来尽可能保证Kafk分区之间的数据是均匀分布的。如果对Kafka不了解的话,可以先看这...
一文理解分布式锁的实现方式 分布式锁的应用场景分布式锁的应用场景主要包括两类:处理效率提升:减少重复任务的执行,避免资源处理效率的浪费(例如幂等场景)。数据准确性保障:在数据资源的并发访问时,避免数据不一致情况,甚至...