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

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

使用持久化


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

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


71887ce002f7a4b7ea9b296480b869e03bde9518

 

当你重启持久化成员,你需要调用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条目溢出到磁盘,而不是完全地丢掉它。

相关文章
|
1月前
|
存储 分布式计算 测试技术
探索Apache Hudi核心概念 (2) - File Sizing
探索Apache Hudi核心概念 (2) - File Sizing
35 2
|
1月前
|
分布式计算 测试技术 Apache
探索Apache Hudi核心概念 (3) - Compaction
探索Apache Hudi核心概念 (3) - Compaction
46 5
|
1月前
|
存储 分布式计算 测试技术
探索Apache Hudi核心概念 (4) - Clustering
探索Apache Hudi核心概念 (4) - Clustering
55 2
|
3月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
157 0
|
3月前
|
机器学习/深度学习 SQL 分布式计算
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
|
3月前
|
分布式计算 Java 大数据
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
53 0
|
28天前
|
存储 缓存 负载均衡
【Apache ShenYu源码】如何实现负载均衡模块设计
整个模块为ShenYu提供了什么功能。我们可以看下上文我们提到的工厂对象。/***/核心方法很清晰,我们传入Upsteam列表,通过这个模块的负载均衡算法,负载均衡地返回其中一个对象。这也就是这个模块提供的功能。
17 1
|
1月前
|
监控 测试技术 Linux
性能工具之 Apache Bench 入门使用
ab 全称为:apache bench,ab 为小型压力工具,对于在 Linux 中简单压测 HTTP 接口轻巧灵活。
20 1
|
1月前
|
SQL 分布式计算 HIVE
Apache Hudi入门指南(含代码示例)
Apache Hudi入门指南(含代码示例)
53 0
|
1月前
|
存储 分布式计算 测试技术
探索Apache Hudi核心概念 (1) - File Layouts
探索Apache Hudi核心概念 (1) - File Layouts
24 1

热门文章

最新文章

推荐镜像

更多