Ú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.