开源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产品功能扩展相关推荐

  1. usb扩展坞同时接键盘鼠标_这个多功能扩展坞,增加多个接口,笔记本秒变工作站...

    原标题:这个多功能扩展坞,增加多个接口,笔记本秒变工作站 为了给笔记本电脑"减负" 越做越薄,接口也是越来越少 很多接口功能都被省去 ... 可是想接入的设备却有很多:鼠标.U盘. ...

  2. 腾讯基于 Flink SQL 的功能扩展与深度优化实践

    简介:本文由腾讯高级工程师杜立分享,主要介绍腾讯实时计算平台针对 Flink SQL 所做的优化. 整理:戴季国(Flink 社区志愿者) 校对:苗文婷(Flink 社区志愿者) 摘要:本文由腾讯高级 ...

  3. 基于开源蜜罐的实践与功能扩展

    0×00 前言 具有一定规模的公司都会有自己的机房,当网络规模和硬件系统到达一定程度,就需要跟进各种安全预警防护手段,而蜜罐系统就是一种常见的防护手段之一,蜜罐主要是通过在网络环境当中,用虚拟各种真实 ...

  4. 绿联扩展坞拆解_拆解报告:UGREEN绿联3A1C四口多功能扩展坞(带SD卡槽版)

    拆解报告:UGREEN绿联3A1C四口多功能扩展坞(带SD卡槽版) 2019-12-24 16:09:36 6点赞 7收藏 2评论 UGREEN绿联最近推出了新款USB-C多功能扩展坞,但是为了给用户 ...

  5. 绿联扩展坞拆解_拆解报告:米物3A1C七合一多功能扩展坞

    ----- 充电头网拆解报告 第1442篇 ----- 米物科技是小米生态链企业之一,专注于PC外设及效率工具领域.面对如今超薄化笔记本这个大环境,米物在小米有品平台推出一款7合1多功能扩展坞,售价1 ...

  6. 袋鼠云产品功能更新报告01期丨用诚心倾听您的需求

    作为一家以"客户第一"为价值观的公司,袋鼠云一直以来关注客户体验,专注提升产品品质,不断收集客户反馈,持续增加新功能并不断优化旧功能,为用户输出最佳产品使用体验.2022年上半年, ...

  7. typec扩展坞hdmi没反应_全功能扩展坞Type-C Docking (扩展坞) 方案讲解-可实现拔插不掉屏...

    Dock,又叫做扩展坞,这类产品的流行是因为笔记本电脑的USB或者视频等接口数量有限,用户希望扩展出更多数量的或者更多种类的接口,来满足多元应用需求.由于笔记本接口输出功率的限制,扩展坞通常需要通过自 ...

  8. HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞|type c 扩展坞接口功能说明

    硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...

  9. 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年针对 ...

最新文章

  1. python 基础 9.0 安装MySQL-python-1.2.5客户端
  2. 【概念】虚拟利润中心初识
  3. CTF(pwn)-格式化字符串漏洞讲解(二) --攻防世界CGfsb
  4. Python3异常处理
  5. Path环境变量的理解以及设置MinGW环境变量
  6. JDK8 集合排序 xxxList.stream.sorted(...)
  7. oracle倒导数的条件过滤参数,oracle exp导出加上过滤条件
  8. 软件工程学习进度第三周暨暑期学习进度之第三周汇总
  9. mootools LightBox
  10. 雷丰阳spring系列的笔记_怒肝8个月源码,我成为了 Spring 开源贡献者
  11. actor对自己不可见
  12. android软件音量控制
  13. android手机屏幕同步电脑,Android手机如何将屏幕投射到计算机上?
  14. 2020编译原理练习记录(2)
  15. 【技术分享】新核心业务系统数据架构规划与数据治理
  16. 【Java】链表的基本操作
  17. 计算机引论模拟试卷,华东师范大学网络学院模拟试卷1.doc
  18. 微信小程序下拉刷新不执行 enablePullDownRefresh
  19. Android点亮屏幕或屏幕解锁和锁定
  20. 你的OA,坚持应用了吗?

热门文章

  1. Could not acquire change log lock. Currently locked by XXX
  2. (视频) 《快速创建网站》3.4 网站改版3分钟搞定 - WordPress主题安装和备份
  3. odoo服务器设置说明
  4. 转 - 微信连WIFI,背后大棋局
  5. 机器视觉的9大快速开发库简单介绍
  6. 区块链技术应用场景之政务链
  7. 什么是思维模型?什么是原则?
  8. 三星时差定位算法 matlab,三星时差定位,tri-satellites geo-location using TDOA,音标,读音,翻译,英文例句,英语词典...
  9. sodo 赋予非管理员用户临时权限
  10. 基于Vue框架开发的页面加载二维地图以及交互