https://github.com/project-geode/docs

Geode是一个提供实时且高一致性的分布式数据管理平台,典型案例是中国铁路12306售票系统使用Geode管理10个集群节点,在内存中管理2T的热点数据和10个高可用弹性规模的后备节点。

Geode通过内存池 CPU 网络资源和可选本地磁盘跨多个进程来管理对象和行为,它使用动态复制和数据分区技术实现高可用性以及提高性能,保证高扩展性和容错性,除了是一个分布式数据容器,Geode还是一个内存in-memory内存数据管理系统提供可靠的异步事件通知和保证信息传递。

Geode作为一个极其成熟和强大的产品,其历史可以追溯到Smalltalk的第一个对象数据库:GemStone,Geode是第一次被部署在金融部门是作为华尔街交易平台的交易 低延迟数据引擎。如今有超过600个企业客户使用其实现高扩展的 24x7业务关键应用。典型案例是中国铁路售票系统。

主要概念和组件
缓存是在Geode分布式系统中描述节点的一个抽象。

在每个缓存中,你能定义数据区域region,数据区域是是类似于关系数据库中数据表的概念,以分布式风格作为name/value名称/值对来管理数据,一个可复制区域中存储的是分布式系统中每个缓存成员中数据的相同拷贝,一个分区区域是在缓存成员中传播数据,当系统配置以后,客户端应用能够根本不知道这些底层基础架构情况下访问区域中的被分布的数据,当数据改变时,你能定义监听者来接受通知,你能定义过期时间来删除区域中的过时数据。

Locator提供了服务发现和负载平衡的功能,你可以配置客户端使用一段Locator服务列表,而locator维持着动态服务成员列表,缺省情况下,Geode客户端和服务器使用端口40404广播发现彼此。

Geode有如下特性:
1. 综合冗余 复制和shared nothing的持久化架构,提供自动预防故障的高性能的传递。
2.横向扩展到数千万个缓存成员,使用多个缓存拓扑来满足不同企业需求缓存能够跨计算机分布。
3.异步和同步缓存更新传播
4.delta变化量传播能只在一个对象(delta)的新旧不同版本之间传播,而不是将整个对象进行传播,好处是显著降低了分布的开销。
5.可靠的异步事件通知,保证消息传递能实现定制的低延时的分布。
6.在没有附加硬件情况下,应用运行性能提高4到40倍。
7.数据敏感和实时商业智能,如果数据改变,你会立即能够看到改变。
8.集成Spring框架简化可扩展的事务企业应用。
9.JTA兼容事务支持
10.跨整个集群范围的配置能够持久或导出到其他集群
11.远程HTTP集群管理
12.REST API和激活REST应用开发
13.主版本滚动升级。

五分钟起步
从Pivotal获得源码,支持JDK1.7.75以上版本:

$ cd geode
$ ./gradlew build installDist

启动locator和服务器:

$ cd gemfire-assembly/build/install/geode
$ ./bin/gfsh
gfsh> start locator --name=locator
gfsh> start server --name=server

创建区域region:

gfsh> create region --name=region --type=REPLICATE

编写一个客户端:

import java.util.Map;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.cache.client.*;public class HelloWorld {public static void main(String[] args) throws Exception {ClientCache cache = new ClientCacheFactory().addPoolLocator("localhost", 10334).create();Region<String, String> region = cache.<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY).create("region");region.put("1", "Hello");region.put("2", "World");for (Map.Entry<String, String>  entry : region.entrySet()) {System.out.format("key = %s, value = %s\n", entry.getKey(), entry.getValue());}cache.close();}
}

编译运行HelloWorld.java,应该将gemfire-core-dependencies.jar放入classpath:
javac -cp /some/path/geode/gemfire-assembly/build/install/geode/lib/gemfire-core-dependencies.jar HelloWorld.java
java -cp .:/some/path/geode/gemfire-assembly/build/install/geode/lib/gemfire-core-dependencies.jar HelloWorld

12306铁路售票系统核心开源中间件Geode介绍相关推荐

  1. 原创:谈谈12306铁路客运售票系统的架构问题(四、最终篇)

    原创:谈谈12306铁路客运售票系统的架构问题(四.最终篇) 作者:刘常军(2014-01-20) 经过前面三篇文章的铺垫和说明,如今终于可以具体分析要如何对12306.cn的架构进行优化了. 在这里 ...

  2. 原创:谈谈12306铁路客运售票系统的架构问题(二)

    原创:谈谈12306铁路客运售票系统的架构问题(二) 作者:刘常军(2014-01-10) 就一个软件系统而言,业务需求是根本,是软件系统的基因和灵魂. 下面我们来简要的分析一下铁路客运售票系统和道路 ...

  3. 铁路售票系统_铁路资讯:复兴号动车、智能京张高铁…中国最高端铁路装备看这里...

    今天上午,两年一度的中国国际现代化铁路技术装备展在京开展,会期3天,将集中展示路网建设.客货运输.经营管理.工程建造.技术装备.旅客服务等铁路行业各领域的先进产品及技术. 展会现场 智能京张:将首次实 ...

  4. .NET 开源项目 StreamJsonRpc 介绍[下篇]

    阅读本文大概需要 9 分钟. 大家好,这是 .NET 开源项目 StreamJsonRpc 介绍的最后一篇.上篇介绍了一些预备知识,包括 JSON-RPC 协议介绍,StreamJsonRpc 是一个 ...

  5. 麒麟 mips mysql_中标麒麟OS+龙芯MIPS适配开源中间件

    大纲 一 背景 二 目标 三 服务器 四 中间件适配 五 应用 六 部署 七 风险 八总结 九 最后rpm 制作 一 背景 19年国家开始筹备和实施安可工程.我司有幸参与其中. 二 目标 适配安装OS ...

  6. 分布式数据库中间件Sharding-JDBC介绍

    前文中介绍了分布式数据库中间件Mycat的一些特性,作为对比本文简要介绍Sharding-JDBC的一些特性以及分片的实现原理,进行对比分析以了解. 1.ShardingSphere介绍 Shardi ...

  7. 简单线程实例(铁路售票模拟)

    这个是自己猜测的铁路售票售票算法,实际怎么操作的,我母鸡啊. 好多次想写点什么,但每次都是被懒惰打败,今天鼓起勇气.希望各位大佬轻捶.当然,不是完整版,后续还有补充,不是完整版,后续补充,不是完整版, ...

  8. Sybase数据库助力中国铁路售票系统案例

    Sybase数据库助力中国铁路售票系统案例 http://www.weaseek.com  2007年06月01日 00:00:00   来源:搜讯网 发表评论 中国铁路客票发售与预订系统由中央级.地 ...

  9. OPNFV董事邓辉:网络功能虚拟化开源平台OPNFV介绍

    2016年6月1-2日,"2016全球SDNFV技术大会"在北京盛大召开.作为连续举办三届的SDN/NFV技术与产业盛会,本届大会着眼于SDN/NFV的实践应用与部署,从SDN/N ...

最新文章

  1. BackgroundSubtractorGMG 背景建模
  2. 神经网络中的注意力机制总结及PyTorch实战
  3. C++数字是否为质数的函数的简单有效实现(附完整源码)
  4. php var_export与var_dump 输出的不同
  5. matlab一致性检验程序,一致性检验的源程序.doc
  6. Unity Shader _Time 的单位
  7. Makefile .PHONY用法
  8. Bitmap Style Designer非官方说明
  9. 【项目实战】基于 springboot + mybatis + mysql 的电脑商城项目(附源码)
  10. U盘刻录操作系统的详细步骤
  11. php网页版进销存源码ERP多仓库管理系统源码
  12. Android中的armeabi等如何适配
  13. web前端常用开发工具有哪些?
  14. 四川大学计算机学院2020推免公示,2020年四川大学计算机(软件)学院夏令营接收推免生条件...
  15. matlab驻波仿真
  16. 用三角函数计算两个坐标点距离
  17. MAC微信接收到的文档打开都变成(只读)解决办法
  18. 机载点云单木分割方法和实现过程的概括介绍(论文赏析)
  19. ORACLE LPAD()函数
  20. 树莓派3b+,4b新手入门到手开箱第一次使用之十大步骤

热门文章

  1. Extract Semantic Structure from Documents Using Multimodal Fully Convolutional Neural Networks阅读笔记
  2. 【C 语言】文件操作 (fscanf、fprintf 函数)
  3. vercel+vue生成免域名静态网站
  4. JXL解决excl中的日期无法筛选问题
  5. [iOS开发项目-8] 喜马拉雅电台
  6. 大型软件设计需求文档——多媒体播放器
  7. 两条曲线怎么加标题_教程 | Origin对2条曲线求和、求差
  8. 每日一练:z字形变化
  9. 2015-2016 ACM-ICPC, Central Europe Regional Contest (CERC 15) F.Frightful Formula(大数NTT)
  10. QQ全面上云,腾讯云的新起点!