当前位置: 首页 > article >正文

12306高并发计算架构揭秘:Apache Geode 客户端接入与实践

目录

Apache Geode 客户端入门指南

一、安装 Apache Geode

二、启动 Geode 集群

三、Java 客户端接入 Geode

Maven 示例依赖

Gradle 示例依赖

Java 示例代码

四、Spring Boot 客户端接入 Geode

Maven 配置

Gradle 配置

运行应用

五、Apache Geode 原生客户端

.NET 客户端示例(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 管理策略,以构建更健壮的数据服务。


参考资料:

  • Apache Geode 官网

  • Apache Geode Java 示例

  • Spring Boot for Apache Geode

  • .NET Client 文档

  • C++ Client 文档

如果你有部署集群或跨语言接入方面的需求,欢迎留言交流。

相关文章:

12306高并发计算架构揭秘:Apache Geode 客户端接入与实践

目录 Apache Geode 客户端入门指南 一、安装 Apache Geode 二、启动 Geode 集群 三、Java 客户端接入 Geode Maven 示例依赖 Gradle 示例依赖 Java 示例代码 四、Spring Boot 客户端接入 Geode Maven 配置 Gradle 配置 运行应用 五、Apache Geode 原生客户端 .NET…...

JSON to Excel 3.0.0 版本发布 - 从Excel插件到Web应用的转变

1. 简介 JSON to Excel 3.0.0 是一个重大更新版本&#xff0c;将原有的Excel插件扩展为完整的Web应用。现在您可以直接在浏览器中使用它&#xff0c;无需安装任何插件。所有的转换在浏览器中完成&#xff0c;预览后&#xff0c;可点击下载按钮&#xff0c;导出成xlsx格式文件。…...

【前端】Vue3+elementui+ts,给标签设置样式属性style时,提示type check failed for prop,再次请出DeepSeek来解答

&#x1f339;欢迎来到《小5讲堂》&#x1f339; &#x1f339;这是《前端》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。&#x1f339; &#x1f339;温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01;&…...

Neo4j 监控全解析:原理、技术、技巧与最佳实践

高效的监控是保障 Neo4j 图数据库性能、稳定性和可观察性的基石。本文将深入探讨 Neo4j 监控的核心原理、关键技术、实用技巧及行业最佳实践&#xff0c;助您构建强大的数据库运维体系。 掌握这些监控技术&#xff0c;将使您的 Neo4j 数据库在稳定性、性能和可维护性上达到企业…...

PyTorch——优化器(9)

优化器根据梯度调整参数&#xff0c;以达到降低误差 import torch.optim import torchvision from torch import nn from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear from torch.utils.data import DataLoader# 加载CIFAR10测试数据集&#xff0c;设置tr…...

07 APP 自动化- appium+pytest+allure框架封装

文章目录 一、PO二、代码简单实现项目框架预览&#xff1a;base_page.pydir_config.pyget_data.pylogger.pystart_session.pyconfig.yamlkey_code.yamllaunch_page_loc.pylogin_page_loc.pylaunch_page.pylogin_page.pytest_login.pypytest.inirun.py 一、PO PO 分为四层 &…...

Postgresql常规SQL语句操作

目录 一、数据库与对象管理 二、数据操作 (CRUD) 三、查询优化与执行计划分析 四、事务控制 五、数据类型与高级特性应用 六、系统查询与维护 研发中的重要注意事项 在 PostgreSQL 研发中&#xff0c;以下这些 SQL 应用是极其常见且核心的操作&#xff0c;涵盖了数据库设…...

智能合约安全漏洞解析:从 Reentrancy 到 Integer Overflow

目录 &#x1f300; Reentrancy&#xff08;重入攻击&#xff09; 原理解析 典型案例&#xff1a;The DAO 攻击事件 漏洞示例 防范措施 &#x1f522; Integer Overflow&#xff08;整数溢出&#xff09; 原理解析 漏洞示例 防范措施 &#x1f6e1;️ 总结与建议 随着…...

英国2025年战略防御评估报告:网络与电磁域成现代战争核心

英国 2025 年战略防御评估 (SDR) 详细制定了一项计划&#xff0c;通过加强使用网络、人工智能和数字战争来整合其军事防御和进攻能力。 与美国一样&#xff0c;英国也被认为&#xff08;尽管未被公开证实&#xff09;会开展进攻性网络行动&#xff0c;甚至针对盟友。斯诺登泄露…...

基于QPSK调制解调+Polar编译码(SCL译码)的matlab性能仿真,并对比BPSK

目录 1.引言 2.算法仿真效果演示 3.数据集格式或算法参数简介 4.MATLAB核心程序 5.算法涉及理论知识概要 6.参考文献 7.完整算法代码文件获得 1.引言 Polar码由土耳其教授Erdal Arikan于2008年提出&#xff0c;是第一种被严格证明可以达到香农极限的构造性编码方法。其核…...

go语言学习 第5章:函数

第5章&#xff1a;函数 函数是编程中不可或缺的一部分&#xff0c;它封装了一段可重复使用的代码&#xff0c;用于执行特定的任务。在Go语言中&#xff0c;函数同样扮演着重要的角色。本章将详细介绍Go语言中函数的定义、调用、参数传递、返回值处理以及一些高级特性&#xff…...

Qt Quick快速入门笔记

Qt Quick快速入门笔记 基本的程序结构int main(int argc, char *argv[]) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endifQGuiApplication app(argc, argv);QQmlApplicationEngine engine;const QUrl ur…...

《波段操盘实战技法》速读笔记

文章目录 书籍信息概览实战八法波段见顶信号中长线大顶形态投资理念 书籍信息 书名&#xff1a;《波段操盘实战技法》 作者&#xff1a;何瑞东 概览 实战八法 投资理念和投资理论概述&#xff1a;波段操作的核心是通过捕捉股价波动中的趋势性机会&#xff0c;结合技术分析与…...

Glide NoResultEncoderAvailableException异常解决

首先将解决方法提出来&#xff1a;缓存策略DiskCacheStrategy.DATA。 使用Glide加载图片&#xff0c;版本是4.15.0&#xff0c;有天发现无法显示gif图片&#xff0c;原始代码如下&#xff1a; Glide.with(context).load(本地资源路径).diskCacheStrategy(DiskCacheStrategy.A…...

工厂模式与多态结合

工厂模式与多态的结合是平台化项目中实现灵活架构的核心技术之一。这种组合能够创建可扩展、易维护的系统架构。 多态(Polymorphism)指同一操作作用于不同的对象&#xff0c;可以有不同的解释&#xff0c;产生不同的执行结果。 例子1&#xff1a; public abstract class Pay…...

无人机巡检智能边缘计算终端技术方案‌‌——基于EFISH-SCB-RK3588工控机/SAIL-RK3588核心板的国产化替代方案‌

一、方案核心价值‌ ‌实时AI处理‌&#xff1a;6TOPS NPU实现无人机影像的实时缺陷检测&#xff08;延迟&#xff1c;50ms&#xff09;‌全国产化‌&#xff1a;芯片、操作系统、算法工具链100%自主可控‌极端环境适配‌&#xff1a;-40℃~85℃稳定运行&#xff0c;IP65防护等…...

相机--相机成像原理和基础概念

教程 成像原理 基础概念 焦距&#xff08;物理焦距&#xff09; 镜头的光学中心到感光元件之间的距离&#xff0c;用f表示&#xff0c;单位&#xff1a;mm&#xff1b;。 像素焦距 相机内参矩阵中的 fx​ 和 fy​ 是将物理焦距转换到像素坐标系的产物&#xff0c;可能不同。…...

2025-0604学习记录17——文献阅读与分享(2)

最近不是失踪了&#xff01;也不是弃坑了...这不是马上要毕业了嘛&#xff01;所以最近在忙毕业论文答辩、毕业去向填报、户档去向填报等等&#xff0c;事情太多了&#xff0c;没顾得上博客。现在这些事基本上都解决完了&#xff0c;也有时间静下心来写写文字了~ 想要写的内容…...

图解浏览器多进程渲染:从DNS到GPU合成的完整旅程

目录 浅谈浏览器进程 浏览器进程架构的演化 进程和线程关系图示 进程&#xff08;Process&#xff09; 线程&#xff08;Thread&#xff09; 协程&#xff08;Coroutine&#xff09; 进程&线程&协程核心对比 单进程和多进程浏览器 单进程浏览器​编辑 单进程…...

【计算机网络】第3章:传输层—TCP 拥塞控制

目录 一、PPT 二、总结 TCP 拥塞控制详解 ⭐ 核心机制与算法 1. 慢启动&#xff08;Slow Start&#xff09; 2. 拥塞避免&#xff08;Congestion Avoidance&#xff09; 3. 快速重传&#xff08;Fast Retransmit&#xff09; 4. 快速恢复&#xff08;Fast Recovery&…...

idea不识别lombok---实体类报没有getter方法

介绍 本篇文章&#xff0c;主要讲idea引入lombok后&#xff0c;在实体类中加注解Data&#xff0c;在项目启动的时候&#xff0c;编译不通过&#xff0c;报错xxx.java没有getXxxx&#xff08;&#xff09;方法。 原因有以下几种 1. idea没有开启lombok插件 2. 使用idea-2023…...

【Hive入门】

之前实习写的笔记&#xff0c;上传留个备份。 1. 使用docker-compose快速搭建Hive集群 使用docker快速配置Hive环境 拉取镜像 2. Hive数据类型 隐式转换&#xff1a;窄的可以向宽的转换显式转换&#xff1a;cast 3. Hive读写文件 SerDe:序列化&#xff08;对象转为字节码…...

亚马逊站内信规则2025年重大更新:避坑指南与合规策略

亚马逊近期对Buyer-Seller Messaging&#xff08;买家-卖家站内信&#xff09;规则进行了显著收紧&#xff0c;明确将一些曾经的“灰色操作”列为违规。违规操作轻则收到警告&#xff0c;重则导致账户暂停或绩效受限。本文为您全面解析本次规则更新的核心要点、背后逻辑&#x…...

01 - AI 时代的操作系统课 [2025 南京大学操作系统原理]

01 - AI 时代的操作系统课 [2025 南京大学操作系统原理] [00:00:00]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4] 大家好&#xff01;我是姜艳艳&#xff0c;来自南京大学计算机软件研究所。今天我们开启《操作系统原理》的第一课&…...

数组1 day7

六&#xff1a;数组 一&#xff1a;数据类型 1.int a[10] //想要知道一个标识符对应的数据类型&#xff0c;去掉标识符&#xff0c;剩下就是它对应的数据类型 ​ //eg&#xff1a;a所谓代表的类型&#xff0c;就是int[10]这种类型&#xff08;是一个数组&#xff0c;包含10个…...

SAP学习笔记 - 开发15 - 前端Fiori开发 Boostrap,Controls,MVC(Model,View,Controller),Modules

上一章讲了Fiori开发的准备&#xff0c;以及宇宙至简之HelloWorld。 SAP学习笔记 - 开发14 - 前端Fiori开发 HelloWorld-CSDN博客 本章继续学习 Fiori 开发的知识&#xff1a; Bootstrap&#xff0c;Controls&#xff0c;MVC(Model&#xff0c;View&#xff0c;Controller&a…...

Redis中的过期策略与内存淘汰策略

因为Redis是纯内存操作&#xff0c;所以在Redis中创建的键一般都会带有过期时间&#xff0c;以此来保证内存中存储数据的时效性。这篇文章我们就来讲解一下Redis中的过期策略与内存淘汰策略。 如何设置Redis中键的过期时间&#xff1f; Redis提供了4个命令来设置键的过期时间&…...

基于SDN环境下的DDoS异常攻击的检测与缓解

参考以下两篇博客&#xff0c;最后成功&#xff1a; 基于SDN的DDoS攻击检测和防御方法_基于sdn的ddos攻击检测与防御-CSDN博客 利用mininet模拟SDN架构并进行DDoS攻击与防御模拟&#xff08;Ryumininetsflowpostman&#xff09;_mininet模拟dos攻击-CSDN博客 需求 H2 模拟f…...

HarmonyOS 实战:给笔记应用加防截图水印

最近在做笔记类应用时&#xff0c;遇到一个头疼的需求&#xff1a;防止用户内容被非法截图传播。思来想去&#xff0c;加水印是个直接有效的方案。研究了 HarmonyOS 的开发文档后&#xff0c;发现用 Canvas 配合布局组件能轻松实现动态水印效果。今天就来聊聊如何给笔记页面加上…...

如何轻松地将文件从 PC 传输到 iPhone?

传统上&#xff0c;您可以使用 iTunes 将文件从 PC 传输到 iPhone&#xff0c;但现在&#xff0c;使用 iTunes 已不再是唯一的选择。现在有多种不同且有效的方法可以帮助您传输文件。在今天的指南中&#xff0c;您可以找到 8 种使用或不使用 iTunes 传输文件的方法&#xff0c;…...