Útmutató a Hazelcast Java-hoz

1. Áttekintés

Ez egy bevezető cikk a Hazelcast-ról, ahol megtudhatjuk, hogyan hozhatunk létre klasztertagot, terjesztést Térkép az adatok megosztásához a fürtcsomópontok között, és hozzon létre egy Java klienst az adatok összekapcsolásához és lekérdezéséhez a fürtben.

2. Mi a Hazelcast?

A Hazelcast egy elosztott In-Memory Data Grid platform Java számára. Az architektúra támogatja a nagy méretezhetőséget és az adatok terjesztését fürtözött környezetben. Támogatja a csomópontok automatikus felderítését és az intelligens szinkronizálást.

A Hazelcast különféle kiadásokban érhető el. Az összes Hazelcast kiadás jellemzőinek megtekintéséhez a következő linkre hivatkozhatunk. Ebben az oktatóanyagban a nyílt forráskódú kiadást fogjuk használni.

Hasonlóképpen, a Hazelcast különféle szolgáltatásokat kínál, például elosztott adatstruktúra, elosztott számítás, elosztott lekérdezés stb. E cikk alkalmazásában egy elosztottra fogunk összpontosítani. Térkép.

3. Maven-függőség

A Hazelcast sokféle könyvtárat kínál a különféle követelmények kielégítésére. Megtalálhatjuk őket a com.hazelcast csoport alatt a Maven Central-ban.

Ebben a cikkben azonban csak az önálló Hazelcast-fürt tag és a Hazelcast Java kliens létrehozásához szükséges alapvető függőséget fogjuk használni:

 com.hazelcast hazelcast 4.0.2 

A jelenlegi verzió elérhető a maven központi adattárban.

4. Első Hazelcast alkalmazás

4.1. Hozzon létre egy Hazelcast tagot

A tagok (más néven csomópontok) automatikusan egyesülnek, és fürtöt alkotnak. Ez az automatikus csatlakozás különféle felfedezési mechanizmusokkal történik, amelyeket a tagok egymásra találnak.

Hozzunk létre egy tagot, amely adatokat tárol egy Hazelcast elosztott térképen:

public class ServerNode {HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance (); ...}

Amikor elkezdjük a ServerNode alkalmazásban láthatjuk az áramló szöveget a konzolon, ami azt jelenti, hogy létrehozunk egy új Hazelcast csomópontot a JVM-ben, amelynek csatlakoznia kell a fürthöz.

Tagok [1] {Tag [192.168.1.105]: 5701 - 899898be-b8aa-49aa-8d28-40917ccba56c this} 

Több csomópont létrehozásához elindíthatjuk a több példányt ServerNode Alkalmazás. Ennek eredményeként a Hazelcast automatikusan létrehozza és új tagot ad hozzá a fürthöz.

Például, ha lefuttatjuk a ServerNode Az alkalmazás ismét a következő naplót látja a konzolon, amely azt mondja, hogy két tag van a fürtben.

Tagok [2] {Tag [192.168.1.105]: 5701 - 899898be-b8aa-49aa-8d28-40917ccba56c Tag [192.168.1.105]: 5702 - d6b81800-2c78-4055-8a5f-7f5b65d49f30 this}

4.2. Hozzon létre egy disztribúciót Térkép

Ezután hozzunk létre egy terjesztést Térkép. Szükségünk van a HazelcastInstance korábban létrehozott egy disztribúció létrehozására Térkép amely kiterjed java.util.concurrent.ConcurrentMap felület.

Térképtérkép = hazelcastInstance.getMap ("adatok"); ...

Végül adjunk hozzá néhány bejegyzést a térkép:

FlakeIdGenerator idGenerator = hazelcastInstance.getFlakeIdGenerator ("newid"); for (int i = 0; i <10; i ++) {map.put (idGenerator.newId (), "üzenet" + i); }

Mint fent láthatjuk, hozzáadtunk 10 bejegyzést a térkép. Használtuk FlakeIdGenerator hogy megkapjuk a térkép egyedi kulcsát. További részletek a FlakeIdGenerator, megnézhetjük a következő linket.

Bár ez nem lehet valós példa, csak a sok művelet egyikének bemutatására használtuk, amelyet alkalmazhatunk az elosztott térképre. Később meglátjuk, hogyan lehet lekérni a fürt tag által hozzáadott bejegyzéseket a Hazelcast Java kliensből.

Belsőleg Hazelcast particionálja a térkép beírja, terjeszti és megismétli a bejegyzéseket a fürt tagjai között. További részletek a Hazelcast-ról Térkép, megnézhetjük a következő linket.

4.3. Hozzon létre egy Hazelcast Java klienst

A Hazelcast kliens lehetővé teszi számunkra, hogy az összes Hazelcast műveletet elvégezzük anélkül, hogy a klaszter tagjai lennénk. Csatlakozik az egyik klasztertaghoz, és az összes klaszterszintű műveletet átruházza rá.

Hozzunk létre egy natív klienst:

ClientConfig config = new ClientConfig (); config.setClusterName ("dev"); HazelcastInstance hazelcastInstanceClient = HazelcastClient.newHazelcastClient (config); 

Ilyen egyszerű.

4.4. Hozzáférés elosztva Térkép Java kliensből

Ezután a. Példányát fogjuk használni HazelcastInstance korábban terjesztett az elosztott hozzáféréshez Térkép:

Térképtérkép = hazelcastInstanceClient.getMap ("adatok"); ...

Most műveleteket hajthatunk végre a térkép anélkül, hogy tagja lenne a klaszternek. Próbáljuk meg ismételni a bejegyzéseket:

a (Bejegyzés bejegyzése: map.entrySet ()) {...}

5. Hazelcast beállítása

Ebben a szakaszban arra összpontosítunk, hogy miként konfigurálhatjuk a Hazelcast hálózatot deklaratív (XML) és programozott (API) használatával, és a Hazelcast kezelőközpont segítségével figyelhetjük és kezelhetjük a futó csomópontokat.

Amíg Hazelcast elindul, keresi a hazelcast.config rendszer tulajdonság. Ha be van állítva, akkor annak értékét használja elérési útként. Ellenkező esetben Hazelcast a hazelcast.xml fájl a munka könyvtárban vagy az osztályúton.

Ha a fentiek egyike sem működik, a Hazelcast betölti az alapértelmezett konfigurációt, azaz hazelcast-default.xml azzal jár mogyoróbarna.jar.

5.1. Hálózat beállítása

Alapértelmezés szerint a Hazelcast csoportos küldéssel fedezi fel a fürtöt alkotó többi tagot. Ha a csoportos küldés nem a preferált felfedezési mód a környezetünk számára, akkor a Hazelcast-ot teljes TCP / IP-fürtre konfigurálhatjuk.

Konfiguráljuk a TCP / IP fürtöt deklaratív konfigurációval:

Alternatív megoldásként használhatjuk a Java config megközelítést:

Config config = új Config (); NetworkConfig network = config.getNetworkConfig (); network.setPort (5701) .setPortCount (20); network.setPortAutoIncrement (true); JoinConfig join = network.getJoin (); join.getMulticastConfig (). setEnabled (hamis); join.getTcpIpConfig () .addMember ("machine1") .addMember ("localhost"). setEnabled (true);

Alapértelmezés szerint a Hazelcast 100 portot próbál meg kötni. A fenti példában, ha a port értékét 5701-nek állítjuk be, és a portok számát 20-ra korlátozzuk, mivel a tagok csatlakoznak a fürthöz, a Hazelcast megpróbálja megtalálni az 5701 és 5721 közötti portokat.

Ha csak egy portot akarunk használni, akkor a beállítással letilthatjuk az automatikus növekedés funkciót automatikus növekedés nak nek hamis.

5.2. Kezelőközpont konfigurálása

A menedzsmentközpont lehetővé teszi számunkra a klaszterek általános állapotának figyelemmel kísérését, részletesen elemezhetjük és böngészhetjük az adatstruktúrákat, frissíthetjük a térképkonfigurációkat, és átvehetjük a szálak kiírását a csomópontokból.

A Hazelcast felügyeleti központ használatához telepíthetjük a mancenter-változat.háború alkalmazást a Java alkalmazás kiszolgálónkba / konténerünkbe, vagy elindíthatjuk a Hazelcast Management Center parancssort. Letölthetjük a legújabb Hazelcast ZIP-t a hazelcast.org oldalról. A ZIP tartalmazza a mancenter-változat.háború fájl.

A Hazelcast csomópontjainkat úgy konfigurálhatjuk, hogy hozzáadjuk a webalkalmazás URL-jét hazelcast.xml majd a Hazelcast tagjainak kommunikálniuk kell a menedzsmentközponttal.

Konfiguráljuk tehát a felügyeleti központot deklaratív konfigurációval:

 // localhost: 8080 / mancenter 

Hasonlóképpen, itt van a programozási konfiguráció:

ManagementCenterConfig manCenterCfg = új ManagementCenterConfig (); manCenterCfg.setEnabled (true) .setUrl ("// localhost: 8080 / mancenter");

6. Következtetés

Ebben a cikkben bemutattuk a Hazelcastra vonatkozó bevezető fogalmakat. További részletekért tekintse meg a Referencia kézikönyvet.

Szokás szerint a cikk összes kódja elérhető a GitHubon.