12306 Geode Introduction of core open source middleware for railway ticketing system

Source: Internet
Author: User
Tags redis cluster gemfire

Geode is a real-time, high-consistency DistributedData management platform, the typical case is the China Railway 12306 ticketing system uses Geode to manage 10 cluster nodes, manage 2T of hotspot data in memory and 10 highly available elastic-scale backup nodes.

Geode manages objects and behaviors across multiple processes through memory pool CPU network resources and optional local disks, which use dynamic replication and data partitioning technology for high availability and performance, ensuring high scalability and fault tolerance, in addition to being a DistributedData container, Geode or a memory in-memory memory data management system provides reliable asynchronous event notification and guaranteed information delivery.

Geode as an extremely mature and powerful product, its history dates back to Smalltalk's first object database: Gemstone,geode was first deployed in the financial sector as a low latency data engine for trading on the Wall Street trading platform. Today, more than 600 enterprise customers use it to deliver highly scalable, 24x7 business-critical applications. The typical case is the China Railway ticketing system.

Key Concepts and Components
Caching is an abstraction that describes a node in a Geode distributed system.

In each Cache, you can define the data area region, which is a concept similar to the data table in a relational database to DistributedStyle as a name/value name/value pair to manage the data, a replicable region that stores the DistributedEach of the systems CacheThe same copy of the data in the member, a partition area is CacheMember to propagate data, when the system is configured, the client application is able to not know at all the data that is distributed in the area of the underlying infrastructure, when the data changes, you can define the listener to accept the notification, you can define the expiration time to delete the stale data in the region.

Locator provides service discovery and load balancing capabilities, you can configure clients to use a list of locator services, while Locator maintains a list of dynamic service members, by default, Geode clients and servers use port 40404 broadcasts to discover each other.

Geode has the following characteristics:
1. A persistent architecture that combines redundant replication and shared nothing, providing high-performance delivery that automatically prevents failures.
2. Scale out to tens of millions of CacheMembers, using multiple CacheTopologies to meet different business needs CacheCan be distributed across computers.
3. Asynchronous and synchronous CacheUpdate propagation
4.delta variation propagation can propagate only between new and old versions of an object (delta), rather than propagating the entire object, the benefit is a significant reduction in the overhead of distribution.
5. Reliable asynchronous event notification to ensure that message delivery can achieve a customized low-latency distribution.
6. In the absence of additional hardware, the performance of the application is increased by 4 to 40 times times.
7. Data sensitive and real-time business intelligence, if the data changes, you will immediately be able to see the changes.
8. Integrated spring Framework simplifies scalable transactional enterprise applications.
9.JTA Compliant transaction support
10. Configurations that span the entire cluster can be persisted or exported to other clusters
11. Remote HTTP Cluster Management
12.REST API and activation REST app development
13. Major version rolling upgrade.

five minutes to start
Obtain source code from pivotal, support JDK1.7.75 above version:

$ cd geode$./gradlew Build Installdist


Start Locator and server:

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


Create Zone Region:
gfsh> Create region--name=region--type=replicate


Write a client:
Import Import Import  Public class  Public Static void Main (string[] args) throws Exception {    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 ();  


To compile and run Helloworld.java, Gemfire-core-dependencies.jar should be put into 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


Home Project-geode/docs Wiki GitHub

Geode provides a third option for users outside of Redis cluster and hazelcast, all of which are based on a three DistributedMemory for open source products.

12306 Geode Introduction of core open source middleware for railway ticketing system

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.