9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

使用 EhCache Server 部署 1TB 缓存

  • 2008-09-02
  • 本文字数:1246 字

    阅读完需:约 4 分钟

EhCache 小组的 Greg Luck 在 8 月初宣布了针对缓存的 SOAP 和 RESTful APIs 。正如文档所述:

Ehcache 现在已经有了一个 Cache Server,它以两种形式出现:适合大多数 Web 容器的 WAR 以及独立的服务器。Cache Server 有两种类型的 API:面向资源的 RESTful 以及 SOAP。这两种 API 都支持任何编程语言。

在随后的一个帖子中,Greg 简述了部署 1TB 缓存理论上的方式:

最大的 Ehcache 单实例在内存中可以缓存 20GB。最大的磁盘可以缓存 100GB。我们可以将节点整合在一起,这样缓存数据就可以跨越节点,以此获得更大的容量。将缓存 20GB 的 50 个节点整合在一起就是 1TB 了。

第一种、也是最简单的方式就是装配运行着 Ehcache Server 的几个节点,然后让客户端根据对象的 Hashcode 来决定使用哪个 Server:

String[] cacheservers = new String[]{"cacheserver0.company.com", "cacheserver1.company.com", "cacheserver2.company.com", "cacheserver3.company.com", "cacheserver4.company.com", "cacheserver5.company.com"};<br></br>Object key = "123231"; <br></br>int hash = Math.abs(key.hashCode()); <br></br>int cacheserverIndex = hash % cacheservers.length;<br></br>String cacheserver =cacheservers[cacheserverIndex];我们使用一个负载均衡器(load balancer)来支持冗余,每个节点运行两个 Ehcache Server 实例,通过使用现有的分布式缓存方案(RMI 或者 JGroups)支持节点之间的数据复制。在这种方式下,客户端依旧使用 Hashcode 来决定使用哪个 Server,但是现在我们可以在负载均衡器所分配的虚拟 IP 后透明地处理失败。

Greg 谈到的第三种方式就是转换职责以将请求路由给负载均衡器。

EhCache Server 的 RESTful 版基于 Jersey——JSR 311 参考实现。Jersey 的开发者之一 Paul Sandoz谈到了如何使用Jersey 的客户端API 以访问缓存来创建并得到一个示例XML 文档:

// retrieving a node<br></br>Node n = r.accept("application/xml").get(DOMSource.class).getNode();<br></br>// creating a node <br></br>String xmlDocument = "...";<br></br>Client c = Client.create(); <br></br>WebResource r = c.resource(http://localhost:8080/ehcache/rest/sampleCache2/2); <br></br>r.type("application/xml").put(xmlDocument);那么 RESTful 缓存适合于哪种场景呢? James Webster 说已经有越来越多的大公司采取这种架构方式了:

我注意到一些投资银行所采取的架构模式就是一种分布式的内存缓冲,该缓存由 RESTful 的前端通过 HTTP 来访问,以得到市场数据(如股票价格、利率曲线,或者诸如表面波动和相互关系之类的引伸价值)和静态数据(如对等细节、结算拖欠)。我们可以“轻松”扩展该分布式缓存以容纳大量数据集,同时前端也允许用其他方式访问数据,只要客户端能访问 HTTP 就行。

正如 James 指出的那样,我们想要看看厂商(如 Oracle Gigaspaces )到底要花多久才能在其产品中支持 RESTful 接口。

查看英文原文: Deploying a 1 Terabyte Cache using EhCache Server

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2008-09-02 07:224726
用户头像

发布了 88 篇内容, 共 254.9 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

Java EE应用服务器的事务管理

swordholder

Java transaction JavaEE

c语言实现timer的10个技术点

linux大本营

进程 定时器, Timer 文件描述符

Android动画之帧动画

向阳逐梦

android App 三周年连更

华为云 OpenTiny 跨端、跨框架企业级开源组件库项目落地实践直播即将开启!

Kagol

开源 前端 Vue 3 UI组件库

AI能训练出符合“核心价值观”的人工智能吗?

擦机鼻涕

人工智能 ChatGPT Claude

一文读懂物联网 MQTT 协议之实战篇

老周聊架构

三周年连更

WebIntents 翻身战,操作系统实现无缝集成的王牌

鼎道智联

AI

用户痛点与根因识别:解锁企业数字化转型成功的关键

L3C老司机

怎么用systemd进行进程守护

linux大本营

Linux 进程 守护进程

Go HTTP 调用

陈明勇

Go golang HTTP 三周年连更

借由Net5.5G,看到运营商的新沧海

脑极体

5.5G

挑战 30 天学完 Python:Day10 循环语句

MegaQi

Python3 挑战30天学完Python 三周年连更

算法题每日一练:组合总和 II

知心宝贝

数据结构 算法 前端 后端 三周年连更

生活中的不确定性,如何应对?

Jack

火山引擎边缘云,助力业务敏捷创新

火山引擎边缘云

CDN 边缘计算 火山引擎 边缘云

OpenResty接口的详细讲解

linux大本营

负载均衡 反向代理 openresty 网关 HTTP服务

OpenCV图像模糊操作(1) | 社区征文

A小调协奏曲

OpenCV C++ 三周年连更

薪资结构重铸: Zebec将业务范围扩大到Web2薪资管理领域

股市老人

小程序自定义组件开发

程序员海军

小程序 三周年连更

AI视觉实战1:实时人脸检测

轻口味

android AI 三周年连更

OceanBase 4.1解读:我们想给用户一个开箱即用的OceanBase部署运维工具

OceanBase 数据库

数据库 oceanbase

2023-04-20:有一堆石头,用整数数组 stones 表示 其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎 假设石头的重量分别为 x 和

福大大架构师每日一题

golang 算法 rust 福大大

C++如何拿到线程池的返回值

linux大本营

线程池 C++

Django笔记十二之defer、only指定返回字段

Hunter熊

Python django defer only

程序踩内存后,应该怎么排查

linux大本营

进程 内存管理 内存泄漏 C++

xnginx在安全网关的应用场景

linux大本营

openresty 网关 web服务器

一键生成通用的web服务(gin)完整项目代码,开发效率至少提升2倍

vison

golang Web gin框架 代码自动生成

lwip_recv_tcp阻塞读取数据代码

linux大本营

TCP 阻塞队列

大型商业银行的超级App是如何“组装”而成?

Onegun

超级app 超级应用

薪资结构重铸: Zebec将业务范围扩大到Web2薪资管理领域

EOSdreamer111

io_uring的10个技术点

linux大本营

高并发 异步 零拷贝 io_uring

  • 扫码添加小助手
    领取最新资料包
使用EhCache Server部署1TB缓存_Java_Gavin Terrill_InfoQ精选文章