摘要: 一、序言 在分布式并发系统中,数据库与缓存数据一致性是一项富有挑战性的技术难点。本文将讨论数据库与缓存数据一致性问题,并提供通用的解决方案。 假设有完善的工业级分布式事务解决方案,那么数据库与缓存数据一致性便迎刃而解,实际上,目前分布式事务不成熟。 二、不同的声音 在数据库与缓存数据一致解决方式中, 阅读全文
posted @ 2022-03-15 10:29 赛泰先生 阅读(1012) 评论(2) 推荐(3) 编辑
摘要: 一、序言 延迟任务应用广泛,延迟任务典型应用场景有订单超时自动取消;支付回调重试。其中订单超时取消具有幂等性属性,无需考虑重复消费问题;支付回调重试需要考虑重复消费问题。 延迟任务具有如下特点:在未来的某个时间点执行;一般仅执行一次。 1、实现原理 生产者将带有延迟信息的消息发送到RabbitMQ交 阅读全文
posted @ 2022-03-08 08:18 赛泰先生 阅读(746) 评论(2) 推荐(1) 编辑
摘要: 一、序言 在实际开发中常常遇到如下需求:判断当前元素是否存在于已知的集合中,将已知集合中的元素维护一个HashSet,使用时只需耗时O(1)的时间复杂度便可判断出结果,Java内部或者Redis均提供相应的数据结构。使用此种方式除了占用内存空间外,几乎没有其它缺点。 当数据量达到亿级别时,内存空间的 阅读全文
posted @ 2022-03-04 09:19 赛泰先生 阅读(846) 评论(0) 推荐(1) 编辑
摘要: 一、序言 在使用MyBatis、MybatisPlus等DAO层数据库访问框架式,常常会与一级缓存、二级缓存打交道,为了增强对缓存体系的整体把控力,提高软件应用响应速度,这里对三级缓存一次梳理。 缓存固然能够提高系统性能,与此同时也带来了脏数据的副作用,系统的缓存体系、缓存结构、缓存策略、缓存介质等 阅读全文
posted @ 2022-03-02 10:02 赛泰先生 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 一、序言 在实际业务中,单表数据增长较快,很容易达到数据瓶颈,比如单表百万级别数据量。当数据量继续增长时,数据的查询性能即使有索引的帮助下也不尽如意,这时可以引入数据分库分表技术。 本文将基于SpringBoot+MybatisPlus+Sharding-JDBC+Mysql实现企业级分库分表。 1 阅读全文
posted @ 2022-03-01 08:50 赛泰先生 阅读(1415) 评论(1) 推荐(3) 编辑
摘要: 一、序言 Caffeine是一个进程内部缓存框架,使用了Java 8最新的[StampedLock]乐观锁技术,极大提高缓存并发吞吐量,一个高性能的 Java 缓存库,被称为最快缓存。 二、缓存简介 (一)缓存对比 从横向对常用的缓存进行对比,有助于加深对缓存的理解,有助于提高技术选型的合理性。下面 阅读全文
posted @ 2022-02-28 08:55 赛泰先生 阅读(2695) 评论(1) 推荐(0) 编辑
摘要: 一、序言 面向大数据量查询数据库,优点是在较大数据量(千万级)的前提下具有较好的查询性能。 1、应用场景 ClickHouse应用于OLAP(在线分析处理)领域,具体来说满足如下特点使用此技术比较合适: 事务型数据库表通过连表查询转换成宽表 聚合(统计)计算使用较多 对查询效率要求较高,有限时间范围 阅读全文
posted @ 2022-02-25 09:30 赛泰先生 阅读(809) 评论(2) 推荐(0) 编辑
摘要: 一、序言 空值异常是应用运行时常见的异常,传统方式为了编写健壮的应用,常常使用多层嵌套逻辑判断回避空指针异常。Java8新特性之Optional为此类问题提供了优雅的解决方式。 广大程序员朋友对空值异常刻骨铭心,因此Optional一经推出,广受赞誉。 二、问题复原 (一)素材准备 public c 阅读全文
posted @ 2022-02-24 10:52 赛泰先生 阅读(373) 评论(0) 推荐(1) 编辑
摘要: 一、序言 SpringBoot 2.6.x不推荐使用循环依赖,这是一个好消息,SpringBoot从底层逐渐引导开发者书写规范的代码,同时也是个忧伤的消息,循环依赖的应用场景实在是太广泛了。 如果从低版本升级到2.6.x,那么很大概率遇到的第一个问题便是循环依赖问题。 二、问题复原 1、代码说明 下 阅读全文
posted @ 2022-02-23 15:49 赛泰先生 阅读(2075) 评论(0) 推荐(1) 编辑
摘要: 一、序言 UCode Cms管理系统是面向企业级应用软件开发的脚手架。当前版本1.3.4。快速体验: git clone https://gitee.com/decsa/demo-cms.git (一)项目特点 1、源码开源 源码开源并且使用MIT开源许可协议,个人或者企业用户免费放心使用,项目源码 阅读全文
posted @ 2022-02-22 08:52 赛泰先生 阅读(661) 评论(0) 推荐(1) 编辑