Apache Geode/GemFire入门(2)-基本概念和模块

简介: Apache Geode/GemFire 入门文章,简要介绍 Geode 基本概念和核心功能模块,以及基本使用方法,有助于初学者比较好的理解相关基本概念

使用持久化


GemFire支持无共享存储持久化。每一个VM写入他们的region data到自己的磁盘文件中。

People region来说,每一个region将要写入整个的region到自己的磁盘文件中。而post region每一份拷贝都将要存在两个不同的peer中。



 

当你重启持久化成员,你需要调用cacheserver start并行地在每个服务器。

原因是GemFire保证了你完整的数据被在VM重启的时候被恢复。每一个VM只能持久化他自己的post部分。每一个GemFire VM等待直到所有的posts都可用。这阻止你看一个不完全的post region视图。

 

 

其他的特性

这有一些其他的GemFire特性你能够用来扩展这个例子。

 

GemFire快速序列化

在这个例子中,PostID和Profile类实现了java.io. Serializable.但是有些时候java的序列化是低效的,序列化使用了反射机制来使域对象序列化。序列化对象写入了整个类名和域名到输出流。GemFire提供了更高效的序列化机制,你能使用它来提高序列化性能。在java c++和c#客户端共享数据更简单(这个真的很强大)。

 

Locator冗余

在这个例子中,我们只使用了一个简单的locator,能够引起SPOF。在生产环境中,我们至少使用两个locator。Locators属性接受了一个locator列表。

 

执行查询

假设你想要显示所有的people。GemFire支持query region OQL。

 

持续查询

在这个例子中客户端注册interest更新进入people region使用正则表达式。你也能够注册更新使用OQL语句。例如,你能为特定用户注册所有的posts。

 

网格编程模型

 

缺省情况下,posts被指定到不同的peers基于key的哈希码。那就意味着没有哪一个post到哪一个server。如果你需要做什么东西从一个特定的用户那里。比如运行拼音检查你必须访问不同的peer中的post。通过用户名来组织这些posts是高效的,这样拼写检查能够在单一的VM上来运行,GemFire通过PartitionResolver来做这个事情。Partition Resolver让你返回一个值来指定一个键值属于哪个逻辑组。在这个例子中,PartitionResolver能够返回PostID的author field。他能够告诉GemFire放所有的post在相同的VM和相同的author上。

 

一旦posts被逻辑地组团。你需要执行你的拼写检查在存储posts上的VM。GemFire传递功能到peers的子集上。这些功能在peers的子集上并行执行。执行拼写检查功能

 

SpellingCheck spellcheck = new SpellingCheck(); //implements Function
Set<String> authors = new HashSet<String();
authors.add("Ethan");
FunctionService.onRegion(people).withFilter(authors).execute(spellcheck);

 

多地域 WAN 网关

如果你有多个数据中心在远程,处于不同位置的GemFire Peers之间的同步复制可能会导致太多的延迟。GemFire提供了WAN 网关,允许两个和更多的远程站点异步发送更新。使用网关很多的更新立即被发送到来提高吞吐能力

 

缓存writer和loader

如你所见,在一个条目被改变之后,一个CacheListener 回调函数被调用。在一个条目被更新之前CacheWriter回调函数被调用。你能够阻塞更新或者发送更新到其他的系统在cachewriter中。你能够添加CacheLoader回调到一个region来获取或者生成一个值,如果他不在缓存中,当get被调用。

 

 

清除和超时

GemFire提供了完全的支持对于eviction 和expiration在缓存中。你能够限制一个region的大小来接受特定的条目或者特定的空间大小。你能配置region在一定时间之后条目超时或者简单地清除条目当你的堆栈满员的时候。

你也能够配置region条目溢出到磁盘,而不是完全地丢掉它。

相关文章
|
6月前
|
Java 应用服务中间件 Apache
从零手写实现 apache Tomcat-01-入门介绍
创建简易Tomcat涉及理解其作为Java服务器的角色,建立HTTP服务器,实现Servlet接口处理动态和静态内容,以及启动和关闭服务器。项目mini-cat是一个简化版Tomcat实现,支持Servlet、静态网页和基础功能。可通过maven添加依赖并运行测试类快速体验。开源项目位于[GitHub](https://github.com/houbb/minicat)。
|
11天前
|
消息中间件 存储 负载均衡
Apache Kafka核心概念解析:生产者、消费者与Broker
【10月更文挑战第24天】在数字化转型的大潮中,数据的实时处理能力成为了企业竞争力的重要组成部分。Apache Kafka 作为一款高性能的消息队列系统,在这一领域占据了重要地位。通过使用 Kafka,企业可以构建出高效的数据管道,实现数据的快速传输和处理。今天,我将从个人的角度出发,深入解析 Kafka 的三大核心组件——生产者、消费者与 Broker,希望能够帮助大家建立起对 Kafka 内部机制的基本理解。
41 2
|
3月前
|
存储 缓存 Ubuntu
如何在 Apache Web 服务器中安装、配置和使用模块
如何在 Apache Web 服务器中安装、配置和使用模块
81 0
|
5月前
|
Java 应用服务中间件 Apache
Apache HTTP配置反向代理入门
Apache HTTP配置反向代理入门
398 0
Apache HTTP配置反向代理入门
|
6月前
|
缓存 监控 Java
Java一分钟之-Apache Geode:分布式内存数据平台
【5月更文挑战第21天】Apache Geode是低延迟的分布式内存数据平台,用于构建实时应用,提供缓存、数据库和消息传递功能。本文聚焦于Geode的常见问题,如数据一致性(数据同步延迟和分区冲突)和性能瓶颈(网络延迟和资源管理不当),并提出解决方案。确保数据一致性可通过选择合适的数据策略和利用`InterestPolicy`、`CacheListener`;提升性能则需优化网络和合理配置资源。通过示例代码展示了如何创建和操作Geode的Region。正确配置和调优Geode对于实现高可用、高性能应用至关重要。
122 1
|
6月前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。
|
6月前
|
存储 缓存 负载均衡
【Apache ShenYu源码】如何实现负载均衡模块设计
整个模块为ShenYu提供了什么功能。我们可以看下上文我们提到的工厂对象。/***/核心方法很清晰,我们传入Upsteam列表,通过这个模块的负载均衡算法,负载均衡地返回其中一个对象。这也就是这个模块提供的功能。
|
6月前
|
存储 Linux 数据库
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
195 0
|
6月前
|
监控 测试技术 Linux
性能工具之 Apache Bench 入门使用
ab 全称为:apache bench,ab 为小型压力工具,对于在 Linux 中简单压测 HTTP 接口轻巧灵活。
108 1
|
6月前
|
存储 分布式计算 测试技术
探索Apache Hudi核心概念 (1) - File Layouts
探索Apache Hudi核心概念 (1) - File Layouts
110 1

推荐镜像

更多