目录
- 一、对缓存中间件的诉求
- 1.1.1 弱势缓存
- 1.1.2 强势缓存
- 1.1 我们为什么需要缓存中间件
- 1.2 缓存的分类
- 二、什么是Apache Geode
- 【一文读懂Apache Geode缓存中间件】2.1.1 通信拓扑
- 2.1.2 服务发现
- 2.1.3 数据存储形式和区域
- 2.1.4 数据量的控制和热点数据
- 2.1 Apache Geode的架构
- 三、Apache Geode是否能满足我们的需要
- 3.2.1 事务支持
- 3.2.2 Functions
- 3.2.3 连续查询
- 3.2.4 异构
- 一致性
- 可用性
- 分区容错性
- 3.2.1 吞吐量和延迟
- 3.2.3 索引
- 3.1 性能
- 3.2 CAP
- 3.3 复杂业务场景的需要
在2022年,一听到缓存中间件,我们首先想到的依然是redis 。但我们团队长期以来并没有充分地利用起redis提高系统性能,依然大量依赖于关系型数据库处理数据的存储和读写 。为提高系统整体性能,尝试引入新的缓存中间件解决我们的问题 。
1.2 缓存的分类我将缓存解决方案划分为两大类别:弱势缓存和强势缓存 。
1.1.1 弱势缓存第一类,是以Redis为首的弱势缓存 。这类缓存强调的是极高的读性能和写性能,一般作为高并发场景下,高速的应用服务和较低速的磁盘数据库之间的缓存 。弱势缓存为提高读写效率,舍弃了强一致性,追求最终一致性,数据结构简单,因此,基于弱势缓存设计的应用系统,通常以磁盘关系型数据库的数据为准,缓存中更倾向于存储一些相对静态稳定的基础数据,用于辅助关系型数据库 。对于数据的更新模式,也更偏向于追加,而不是大并发下的频繁更新,应用系统不会完全信任缓存中的数据 。这种效率优先,对数据准确性要求不高的方向与如今的互联网行业(尤其是toC领域)的需求十分契合 。
1.1.2 强势缓存而对于业务数据模型较复杂,对数据实时性和准确性要求较高的金融行业、企服行业,更需要的是一个强一致性的数据存储,在引入缓存之前,关系型数据库承担了这一角色 。业务特性导致我们几乎无法接受为了读写效率牺牲数据准确性 。复杂业务场景下,我们需要一个强一致性和高实时性的、对数据结构有更强的表达能力的,能描述部分逻辑表达的内存数据库 。能满足这些要求的产品,我称其为强势缓存 。因为这些特性可以让内存数据库作为我们数据的基准,而让关系型数据库作为一个持久化的备份,进一步降低磁盘的访问率,提高内存的存在感,让一个完整业务流程中的数据流转可以在内存中可靠地完成 。
二、什么是Apache GeodeApache Geode正是满足我给出的强势缓存定义的一款内存数据库产品 。它是商业内存数据网格Geofirm的开源版本,已经在金融支付领域和12306等大型订购网站中经受住了考验 。
经验总结扩展阅读
- 基于 Apache Hudi 极致查询优化的探索实践
- 如何读懂狗心里在想什么
- 一文搞定 Spring事务
- 可爱在性感面前一文不值是什么意思?
- 一文带你读懂小米手环6和7的区别 小米手环7比6多了什么功能
- 一文看懂华为充电新技术 华为mate30支持无线充电吗
- 苹果如何录入nfc门禁卡 (一文了解iPhone手机添加门禁卡的方法)
- cad表格怎么统一文字高度?
- 牵手一文有哪些方面的含义 牵手一文都有哪些方面的含义
- 情人节:读懂9位作家的婚姻,你就知道何谓家、何谓爱