Peeter Veentjer: Distributed Systems using Hazelcast
Egyszer indítani fogok egy olyan sorozatot, ahol a szépen megmunkált Java librarykról fogok írni. Mindig öröm olyan alkalmazással találkozni, amin látszik a gondos kezek munkája. A Hazelcast, amit szintén régóta kerülgetek már, pont ilyen. Kicsi, egyetlen Jar file, egyszerű api, okos defaultok, és jól lehet hangolni nagyon sok részletét. Mintha olyan fejlesztők gondoznák akik használják is.
Maga a Hazelcast a NoSQL világ datagrid osztályához tartozik, ahol pl. a Gigaspaces vagy a Coherence is versenyez. Csak ez Open Source és ingyenes (support elérhető). Aki nem látott még ilyet az leginkább egy nagyon elosztott ConcurrentHashMap-re kell, hogy gondoljon. Meg persze emellett még BlockingQueue-ra, Topic/Subscriber-re, valamint bármilyen saját adatszerkezetre (ugye szépen kiterjeszthető).
Mindez nagyon sok ügyes extrával:
- Lehet állítani a backupok számát.
- Lehet kérni külső rendszerbe való perzisztálást.
- Hangolható, hogy egy művelethez szükséges adatok egy helyen legyenek.
- Lecserélhető a szerializáció (Protobuf, Kryo, bármi),
- Lehet futtatni kódot a megfelelő node-okon. (Ahelyett, hogy kiszedjük az adatot, műveletet végzünk, vissza tesszük, a művelet kódját küldjök az adathoz.)
- Multicast és TCP autodiscovery.
Nem véletlen, hogy sok Open Source pojekt használja a felszín alatt.