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月前
|
Java 应用服务中间件 Apache
从零手写实现 apache Tomcat-01-入门介绍
创建简易Tomcat涉及理解其作为Java服务器的角色,建立HTTP服务器,实现Servlet接口处理动态和静态内容,以及启动和关闭服务器。项目mini-cat是一个简化版Tomcat实现,支持Servlet、静态网页和基础功能。可通过maven添加依赖并运行测试类快速体验。开源项目位于[GitHub](https://github.com/houbb/minicat)。
|
1月前
|
分布式计算 测试技术 Apache
探索Apache Hudi核心概念 (3) - Compaction
探索Apache Hudi核心概念 (3) - Compaction
64 5
|
1月前
|
存储 分布式计算 测试技术
探索Apache Hudi核心概念 (2) - File Sizing
探索Apache Hudi核心概念 (2) - File Sizing
46 2
|
15天前
|
Java 应用服务中间件 Apache
Apache HTTP配置反向代理入门
Apache HTTP配置反向代理入门
18 0
Apache HTTP配置反向代理入门
|
1月前
|
缓存 监控 Java
Java一分钟之-Apache Geode:分布式内存数据平台
【5月更文挑战第21天】Apache Geode是低延迟的分布式内存数据平台,用于构建实时应用,提供缓存、数据库和消息传递功能。本文聚焦于Geode的常见问题,如数据一致性(数据同步延迟和分区冲突)和性能瓶颈(网络延迟和资源管理不当),并提出解决方案。确保数据一致性可通过选择合适的数据策略和利用`InterestPolicy`、`CacheListener`;提升性能则需优化网络和合理配置资源。通过示例代码展示了如何创建和操作Geode的Region。正确配置和调优Geode对于实现高可用、高性能应用至关重要。
50 1
|
1月前
|
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)。
|
1月前
|
存储 Linux 数据库
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
55 0
|
1月前
|
存储 缓存 负载均衡
【Apache ShenYu源码】如何实现负载均衡模块设计
整个模块为ShenYu提供了什么功能。我们可以看下上文我们提到的工厂对象。/***/核心方法很清晰,我们传入Upsteam列表,通过这个模块的负载均衡算法,负载均衡地返回其中一个对象。这也就是这个模块提供的功能。
44 1
|
1月前
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
599 0
|
1月前
|
监控 测试技术 Linux
性能工具之 Apache Bench 入门使用
ab 全称为:apache bench,ab 为小型压力工具,对于在 Linux 中简单压测 HTTP 接口轻巧灵活。
37 1

推荐镜像

更多