IMDG产品功能扩展
开源IMDG通常都提供了SPI或其他接口,供用户自行扩展。以Hazelcast为例,我们可以用一些好玩的小工具增强其查询、Map和后端持久化的功能。这些小工具虽然看起来很小,但功能也非常强大。
SQL查询
JoSQL非常简单易用,只需几步就可以在普通Java对象上实现SQL查询功能,而且对标准SQL支持的还很全面呢。同时也提供了接口,我们可以自定义想要的SQL函数。
它与Hazelcast的集成方法非常简单,就是新建一个Predicate子类。查询时使用我们新建的这个类,Hazelcast执行时会将我们新定义的apply发送到各个结点上执行,将符合条件的数据返回并汇总,最后返回给我们。利用JoSQL对Hazelcast查询的where过滤条件增强比较容易,但是想利用JoSQL的groupby、join和各种汇总函数对Hazelcast进行增强的话改动比较大,因为Hazelcast的设计就是进行简单的过滤查询,返回值都是对象。要扩展的话可能要利用Hazelcast的MapReduce和Aggregator接口。
堆外存储
JDK中提供了直接申请堆外内存的方法,就是ByteBuffer.allocateDirect(),其底层调用的是Sun私有的Unsafe.allocateMemory()。因为像Hazelcast这些开源IMDG都把堆外存储缓存数据作为商业版的主打功能之一,所以我们需要自行扩展。但是自己管理堆外内存很麻烦,涉及到空闲内存分配、回收、内存碎片等等管理问题,所以我们还是希望直接使用第三方的产品。在这一领域,目前已经有一些开源产品了:
Ø MapDB:嵌入式数据库,提供文件和堆外存储,以及ACID支持。
Ø DirectMemory:Apache旗下的开源项目,目前还是0.3版本。
Ø 其他:HugeCollections、Fast-serialization等。
以MapDB为例,看一下它的使用方法。具体与Hazelcast的集成方法稍稍麻烦一些,需要实现三个Hazelcast的类,可以参考GitHub上的项目:Hugecast和mapdb-hz-offheap。
后端持久化
使用IMDG时,我们通常还要为每个对象的缓存提供数据加载和持久化类,从而实现缓存的初始化加载和read/write-through功能。可以简单地使用JDBC+DozerMap实现数据的加载保存和实体对象装配,或者利用Hibernate简化这个过程。每种IMDG都提供了对应的扩展接口,例如Hazelcast的扩展点是MapLoader或MapStore,具体实现方式很简单就不列举了。
IMDG产品功能扩展相关推荐
- usb扩展坞同时接键盘鼠标_这个多功能扩展坞,增加多个接口,笔记本秒变工作站...
原标题:这个多功能扩展坞,增加多个接口,笔记本秒变工作站 为了给笔记本电脑"减负" 越做越薄,接口也是越来越少 很多接口功能都被省去 ... 可是想接入的设备却有很多:鼠标.U盘. ...
- 腾讯基于 Flink SQL 的功能扩展与深度优化实践
简介:本文由腾讯高级工程师杜立分享,主要介绍腾讯实时计算平台针对 Flink SQL 所做的优化. 整理:戴季国(Flink 社区志愿者) 校对:苗文婷(Flink 社区志愿者) 摘要:本文由腾讯高级 ...
- 基于开源蜜罐的实践与功能扩展
0×00 前言 具有一定规模的公司都会有自己的机房,当网络规模和硬件系统到达一定程度,就需要跟进各种安全预警防护手段,而蜜罐系统就是一种常见的防护手段之一,蜜罐主要是通过在网络环境当中,用虚拟各种真实 ...
- 绿联扩展坞拆解_拆解报告:UGREEN绿联3A1C四口多功能扩展坞(带SD卡槽版)
拆解报告:UGREEN绿联3A1C四口多功能扩展坞(带SD卡槽版) 2019-12-24 16:09:36 6点赞 7收藏 2评论 UGREEN绿联最近推出了新款USB-C多功能扩展坞,但是为了给用户 ...
- 绿联扩展坞拆解_拆解报告:米物3A1C七合一多功能扩展坞
----- 充电头网拆解报告 第1442篇 ----- 米物科技是小米生态链企业之一,专注于PC外设及效率工具领域.面对如今超薄化笔记本这个大环境,米物在小米有品平台推出一款7合1多功能扩展坞,售价1 ...
- 袋鼠云产品功能更新报告01期丨用诚心倾听您的需求
作为一家以"客户第一"为价值观的公司,袋鼠云一直以来关注客户体验,专注提升产品品质,不断收集客户反馈,持续增加新功能并不断优化旧功能,为用户输出最佳产品使用体验.2022年上半年, ...
- typec扩展坞hdmi没反应_全功能扩展坞Type-C Docking (扩展坞) 方案讲解-可实现拔插不掉屏...
Dock,又叫做扩展坞,这类产品的流行是因为笔记本电脑的USB或者视频等接口数量有限,用户希望扩展出更多数量的或者更多种类的接口,来满足多元应用需求.由于笔记本接口输出功率的限制,扩展坞通常需要通过自 ...
- HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞|type c 扩展坞接口功能说明
硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...
- TYPEC 转HDMI VGA+PD+ USB3.0 HUB+TF/CF/SD+RJ45等多功能扩展坞方案设计资料|TYPE-C转HDMI转VGA带PD USB3.0多功能拓展器方案介绍
如何对TYPE-C转HDMI转VGA多功能扩展坞或者拓展器选择一款有效且低成本的方案?针对这一命题,我们选择一款芯片AG9321MCQ来实现设计,且这款方案是Algoltek安格科技 在2020年针对 ...
最新文章
- python 基础 9.0 安装MySQL-python-1.2.5客户端
- 【概念】虚拟利润中心初识
- CTF(pwn)-格式化字符串漏洞讲解(二) --攻防世界CGfsb
- Python3异常处理
- Path环境变量的理解以及设置MinGW环境变量
- JDK8 集合排序 xxxList.stream.sorted(...)
- oracle倒导数的条件过滤参数,oracle exp导出加上过滤条件
- 软件工程学习进度第三周暨暑期学习进度之第三周汇总
- mootools LightBox
- 雷丰阳spring系列的笔记_怒肝8个月源码,我成为了 Spring 开源贡献者
- actor对自己不可见
- android软件音量控制
- android手机屏幕同步电脑,Android手机如何将屏幕投射到计算机上?
- 2020编译原理练习记录(2)
- 【技术分享】新核心业务系统数据架构规划与数据治理
- 【Java】链表的基本操作
- 计算机引论模拟试卷,华东师范大学网络学院模拟试卷1.doc
- 微信小程序下拉刷新不执行 enablePullDownRefresh
- Android点亮屏幕或屏幕解锁和锁定
- 你的OA,坚持应用了吗?
热门文章
- Could not acquire change log lock. Currently locked by XXX
- (视频) 《快速创建网站》3.4 网站改版3分钟搞定 - WordPress主题安装和备份
- odoo服务器设置说明
- 转 - 微信连WIFI,背后大棋局
- 机器视觉的9大快速开发库简单介绍
- 区块链技术应用场景之政务链
- 什么是思维模型?什么是原则?
- 三星时差定位算法 matlab,三星时差定位,tri-satellites geo-location using TDOA,音标,读音,翻译,英文例句,英语词典...
- sodo 赋予非管理员用户临时权限
- 基于Vue框架开发的页面加载二维地图以及交互