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是一...

电商物流:配送管理系统实践

当今电商行业蓬勃发展,物流是其中不可或缺的一个环节,而配送管理系统(Delivery Management System, DMS) 用于实物商品从下单到配货到发货到签收以及退换货的全流程管理(相对于实物商品,虚拟商品如教培行业的课程就不再DMS处理范围内,一般两者可以通过更为抽象的履约平台进行统一调度和管理)。 注意DMS并不关心商品的实际配送本身,你可以在自营仓库发货,也可以在第三方仓库...