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