目录
[Apache Geode 客户端入门指南](#Apache Geode 客户端入门指南)
[一、安装 Apache Geode](#一、安装 Apache Geode)
[二、启动 Geode 集群](#二、启动 Geode 集群)
[三、Java 客户端接入 Geode](#三、Java 客户端接入 Geode)
[Maven 示例依赖](#Maven 示例依赖)
[Gradle 示例依赖](#Gradle 示例依赖)
[Java 示例代码](#Java 示例代码)
[四、Spring Boot 客户端接入 Geode](#四、Spring Boot 客户端接入 Geode)
[Maven 配置](#Maven 配置)
[Gradle 配置](#Gradle 配置)
[五、Apache Geode 原生客户端](#五、Apache Geode 原生客户端)
[C++ 客户端示例](#C++ 客户端示例)
Apache Geode 客户端入门指南
Apache Geode 是一个分布式的内存数据管理平台,它提供了高可用、可扩展、低延迟的数据访问能力。本文将系统介绍如何安装 Apache Geode、启动一个基本的集群环境,并分别展示使用 Java、Spring Boot、.NET 及 C++ 等客户端进行简单的 Put/Get 操作。
一、安装 Apache Geode
你可以通过以下方式安装 Apache Geode:
-
官网下载安装包 :Apache Geode --- Releases
-
Docker 镜像运行
-
macOS 用户可通过 Homebrew 安装
详细步骤请参考官方文档的《How to Install Apache Geode》。
二、启动 Geode 集群
在终端中运行 gfsh
命令启动 locator 和 server,并创建一个示例 Region:
$ gfsh
gfsh> start locator
gfsh> start server
gfsh> create region --name=helloWorld --type=PARTITION
完成测试后,使用以下命令关闭集群:
gfsh> shutdown --include-locators=true
三、Java 客户端接入 Geode
Maven 示例依赖
<dependency>
<groupId>org.apache.geode</groupId>
<artifactId>geode-core</artifactId>
<version>${VERSION}</version>
</dependency>
Gradle 示例依赖
dependencies {
implementation "org.apache.geode:geode-core:${VERSION}"
}
Java 示例代码
public static void main(String[] args) {
ClientCache cache = new ClientCacheFactory().addPoolLocator("127.0.0.1", 10334).create();
Region<String, String> helloWorldRegion =
cache.<String, String>createClientRegionFactory(ClientRegionShortcut.PROXY).create("helloWorld");
helloWorldRegion.put("1", "HelloWorldValue");
String value1 = helloWorldRegion.get("1");
System.out.println(value1);
cache.close();
}
运行后将 "1"
作为键存入值 "HelloWorldValue"
,随后取出并打印。
四、Spring Boot 客户端接入 Geode
使用 Spring Initializr 创建项目,添加依赖 Spring for Apache Geode
。
Maven 配置
<properties>
<spring-geode.version>1.4.3</spring-geode.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.geode</groupId>
<artifactId>spring-geode-bom</artifactId>
<version>${spring-geode.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.geode</groupId>
<artifactId>spring-geode-starter</artifactId>
</dependency>
</dependencies>
Gradle 配置
ext {
set('springGeodeVersion', "1.4.3")
}
dependencies {
implementation 'org.springframework.geode:spring-geode-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.geode:spring-geode-bom:${springGeodeVersion}"
}
}
运行应用
项目生成后导入 IDE,启动 Spring Boot 应用后你将在控制台看到连接成功的日志:
Cluster was found; Auto-configuration made [2] successful connection(s)
无须额外代码,Spring Boot 会自动完成连接配置。
五、Apache Geode 原生客户端
Apache Geode 提供原生的 .NET 与 C++ 客户端,需要手动从源码构建,详见官网文档及 BUILDING.md
。
.NET 客户端示例(C#)
var region = cache.CreateRegionFactory(RegionShortcut.PROXY)
.SetPoolName("pool").Create<string, string>("example_userinfo");
region.Put("rtimmons", "Robert Timmons");
Console.WriteLine(region.Get("rtimmons")); // 输出:Robert Timmons
region.Remove("rtimmons");
C++ 客户端示例
auto region = cache.createRegionFactory(RegionShortcut::PROXY)
.setPoolName("pool").create("example_userinfo");
region->put("rtimmons", "Robert Timmons");
auto user = region->get("rtimmons");
std::cout << std::dynamic_pointer_cast<CacheableString>(user)->value() << std::endl;
region->remove("rtimmons");
六、结语
Apache Geode 客户端生态丰富,适用于多种语言平台。无论你使用的是原生 Java、Spring Boot、.NET 还是 C++,Geode 都提供了统一、高效的分布式数据访问能力。建议深入学习其 Client/Server 模式配置与 region 管理策略,以构建更健壮的数据服务。
参考资料:
如果你有部署集群或跨语言接入方面的需求,欢迎留言交流。