摘要: JDK8新特性:接口的静态方法和默认方法 https://blog.csdn.net/aitangyong/article/details/54134385 @FunctionalInterface https://blog.csdn.net/aitangyong/article/details/5 阅读全文
posted @ 2020-11-04 13:34 江舟 阅读(50) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/liuge36/p/12614696.html https://github.com/sicofield/spring-boot-api-project-seed 阅读全文
posted @ 2020-10-18 14:33 江舟 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 官方文档:http://dubbo.apache.org/zh-cn/docs/user/preface/usage.html 2020年10月18日开启学习 阅读全文
posted @ 2020-10-18 12:02 江舟 阅读(52) 评论(0) 推荐(0) 编辑
摘要: Sharding-JDBC是ShardingSphere的一个子项目,使用数据库路由来进行分库分表。ShardingSphere的官方文档地址为:http://shardingsphere.apache.org/index_zh.html 具体的细节参考官方文档学习。 文档总结 概念 逻辑表,真实表 阅读全文
posted @ 2020-08-17 16:41 江舟 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 本文主题摘自:《Redis设计与实现》 — 黄健宏 Redis HashTable内部结构 基本的Hash结构,数组+链表 ht属性是一个包含两个项的数组,数组中的每个项都是一个dictht哈希表,一般情况下,字典只使用ht[0]哈希表,ht[1]哈希表只会在对ht[0]哈希表进行rehash时使用 阅读全文
posted @ 2020-08-12 09:30 江舟 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 1. 需求分析 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在电商、金融、支付等系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。概括下来,那业务系统对ID号的要求有哪些呢? 阅读全文
posted @ 2020-08-05 14:08 江舟 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 缓存击穿、穿透、雪崩是在使用缓存的时候经常需要考虑的三个问题。我们先了解下概念: 首先这三种情况都是缓存没有命中(缓存中没有相应的值)。 缓存击穿:缓存击穿表示数据库中也没有相应的值。 缓存穿透:数据库中有相应的值,需要重建缓存。 缓存雪崩: 大量的缓存失效,导致大量的key发生缓存穿透。 缓存击穿 阅读全文
posted @ 2020-08-04 14:30 江舟 阅读(281) 评论(0) 推荐(0) 编辑
摘要: Redis分布式锁在加锁的时候,我们一般都会给一个锁的过期时间(TTL),这是为了防止加锁后client宕机,锁无法被释放的问题。但是所有这种姿势的用法都会面临同一个问题,就是没发保证client的执行时间一定小于锁的TTL。虽然大多数程序员都会乐观的认为这种情况不可能发生,但是各种异常情况都会导致 阅读全文
posted @ 2020-07-30 14:11 江舟 阅读(2806) 评论(0) 推荐(0) 编辑
摘要: 什么是 Redisson Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。充分的利用了Redis键值数据库提供的一系列优势,基于Java实用工具包中常用接口,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发 阅读全文
posted @ 2020-07-30 14:08 江舟 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 本文考虑的数据库与缓存一致性问题是缓存侧模式的缓存一致性问题。关于缓存的设计模式可以参考这篇文章:缓存更新的套路 首先明确一点,给缓存设置expire time那么缓存和数据库是满足最终一致性的。所有的方案都可以通过设置expire time来实现最终一致性。 现在,我们讨论三种更新策略: 先更新数 阅读全文
posted @ 2020-07-28 16:00 江舟 阅读(345) 评论(0) 推荐(0) 编辑