Bao Tingyu's Blog

长业务事务的离线并发问题

事务指代一组操作同时成功或同时失败,事务可分为两类: 系统事务:即关系数据库事务,一次数据库连接中由start transaction或begin开启,commit表示提交,rollback表示回滚; 业务事务:完成一个业务目标包含的一系列业务动作,如让一个配置生效,需要经历 编辑->保存->提交审批->审批通过 这4个步骤。 当事务持续时间过长,并发请求的概...

JVM G1性能调优

G1简介和常用配置可参考:JVM G1垃圾回收器简介与常用配置 G1调优概要 G1整体上保持默认配置即可,最多配置一下 pause-time goal或堆内存大小(-Xmx和-Xms)。 不像其他的垃圾回收器,G1默认已经在最大吞吐和低时延之间做了平衡。但是,G1在堆中的增量式空间回收和pause-time控制机制给应用线程 和回收效率上都带来了负担。 如果需要大吞吐(非在线业务,如...

分布式锁选型 Redis vs Zookeeper

分布式锁作为分布式环境下并发控制利器,使用场景广泛。分布式锁通常可利用中间件Redis或Zookeeper来实现, 例如针对Java语言Redis有Redisson组件, Zk有Curator组件。 Redis是一款内存数据库,通常可用来做缓存,由于其执行命令使用单线程,也可以用来实现分布式锁, 在集群模式下,Redis提供主从复制和哨兵机制实现高可用性; Zookeeper是一...