日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hazelcast入门指南第1部分

發(fā)布時(shí)間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hazelcast入门指南第1部分 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹

我將在Hazelcast上做一個(gè)系列。 我從Twitter了解了該產(chǎn)品。 他們決定跟隨我,經(jīng)過對(duì)他們所做工作的研究后,我決定跟隨他們。 我在推特上說,Hazelcast將是分布式密碼破解者的重要Struts。 這引起了一些興趣,我決定加入一個(gè)。 Hazelcast的副總裁開始與我聯(lián)系,我們認(rèn)為雖然餅干是一個(gè)好項(xiàng)目,但社區(qū)(和我)將從為初學(xué)者準(zhǔn)備的一系列職位中受益。 在www.hazelcast.com上找到的《 哈茲卡斯特之書》預(yù)覽中,我得到了很多很好的信息。

什么是淡褐色?

Hazelcast是一個(gè)分布式的內(nèi)存數(shù)據(jù)庫。 使用Hazelcast的世界各地都有項(xiàng)目。 該代碼在Apache License 2.0下是開源的。

特征

Hazelcast中已經(jīng)內(nèi)置了許多功能。 這里是其中的一些:

  • 自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)上的節(jié)點(diǎn)
  • 高可用性
  • 內(nèi)存?zhèn)浞?
  • 緩存數(shù)據(jù)的能力
  • 分布式線程池
    • 分布式執(zhí)行器服務(wù)
  • 在不同分區(qū)中具有數(shù)據(jù)的能力。
  • 異步或同步保留數(shù)據(jù)的能力。
  • 交易次數(shù)
  • SSL支持
  • 存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu):
    • 清單
  • 不同流程之間的通信結(jié)構(gòu)
    • 隊(duì)列
  • 原子操作
    • 長(zhǎng)壽
  • ID生成
    • IdGenerator
  • 鎖定
    • 等量線

使用Hazelcast

只是和Hazelcast一起玩耍和閱讀就教會(huì)了我去做這些事情。

  • 數(shù)據(jù)將存儲(chǔ)為字節(jié)數(shù)組。 (這不是一個(gè)假設(shè),我是直接從書中得到的)
  • 數(shù)據(jù)將通過網(wǎng)絡(luò)傳輸。
  • 數(shù)據(jù)是遠(yuǎn)程的。
  • 如果數(shù)據(jù)不在內(nèi)存中,則不存在。
  • 讓我解釋這些假設(shè):

    數(shù)據(jù)將存儲(chǔ)為字節(jié)數(shù)組

    我從《榛子之書》中獲得了這些信息,因此這并不是一個(gè)假設(shè)。 這很重要,因?yàn)椴粌H數(shù)據(jù)以這種方式存儲(chǔ), 密鑰也是如此。 如果使用除基元或字符串以外的其他鍵作為鍵,這會(huì)使生活變得非常有趣。 hash()和equals()的開發(fā)人員必須以鍵的形式考慮它,將其視為字節(jié)數(shù)組而不是類。

    數(shù)據(jù)將通過網(wǎng)絡(luò)

    這是一個(gè)分布式數(shù)據(jù)庫,因此部分?jǐn)?shù)據(jù)將存儲(chǔ)在其他節(jié)點(diǎn)中。 也有備份和緩存。 有一些技術(shù)和設(shè)置可以減少通過網(wǎng)絡(luò)傳輸數(shù)據(jù)的速度,但如果要獲得高可用性,則必須進(jìn)行備份。

    數(shù)據(jù)是遠(yuǎn)程的

    這是一個(gè)分布式數(shù)據(jù)庫,因此數(shù)據(jù)庫的一部分將存儲(chǔ)在其他節(jié)點(diǎn)上。 我提出這個(gè)假設(shè)并不是要屈服于數(shù)據(jù)是遠(yuǎn)程的事實(shí),而是要激勵(lì)設(shè)計(jì)以確保在大多數(shù)數(shù)據(jù)所在的位置執(zhí)行操作。 如果開發(fā)人員足夠熟練,則可以將其降至最低。

    如果數(shù)據(jù)不在內(nèi)存中,則不存在

    不要忘記這是一個(gè)內(nèi)存數(shù)據(jù)庫。 如果未將其加載到內(nèi)存中,則數(shù)據(jù)庫將不知道數(shù)據(jù)存儲(chǔ)在其他位置。 該數(shù)據(jù)庫不會(huì)保留數(shù)據(jù)以備以后使用。 之所以持續(xù)存在,是因?yàn)閿?shù)據(jù)很重要。 一旦它內(nèi)存不足,就無法像傳統(tǒng)數(shù)據(jù)庫( MySQL)那樣將其從磁盤中帶回。

    數(shù)據(jù)存儲(chǔ)

    Java開發(fā)人員將很高興知道Hazelcast的數(shù)據(jù)存儲(chǔ)容器(其中一個(gè)是java.util.Collections接口的擴(kuò)展)除外。 例如,一個(gè)IList遵循與java.util.List相同的方法協(xié)定。 以下是不同數(shù)據(jù)存儲(chǔ)類型的列表:

    • IList –這使許多對(duì)象按其放入順序排列
    • IQueue –在BlockingQueue之后,可以用作JMS中的Message Queue的替代。 這可以通過QueueStore保留
    • IMap –這擴(kuò)展了ConcurrentMap。 它也可以由MapStore保留。 它還具有許多其他功能,我將在另一篇文章中討論。
    • ISet –保留一組唯一的元素,這些元素不能保證順序。
    • MultiMap –它不遵循典型的地圖,因?yàn)槊總€(gè)鍵可以有多個(gè)值。

    設(shè)定

    對(duì)于Hazelcast包含的所有功能,初始設(shè)置步驟非常簡(jiǎn)單。

  • 下載在Hazelcast zip文件www.hazelcast.org和提取內(nèi)容。
  • 將在lib目錄中找到的jar文件添加到一個(gè)人的類路徑中。
  • 創(chuàng)建一個(gè)名為hazelcast.xml的文件,并將以下內(nèi)容放入文件中
  • <?xml version="1.0" encoding="UTF-8"?> <hazelcast xsi:schemaLocation ="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-3.0.xsd " xmlns ="http://www.hazelcast.com/schema/config " xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"><network><join><multicast enabled="true"/></join></network><map name="a"></map> </hazelcast>

    Hazelcast在一些地方查找配置文件:

    • 由hazelcast.config屬性定義的路徑
    • 如果類路徑包含在hazelcast.config中,則類路徑中的hazelcast.xml
    • 工作目錄
    • 如果其他所有方法均失敗,則將hazelcast-default.xml加載到hazelcast.jar中。
    • 如果根本不想處理配置文件,則可以以編程方式完成配置。

    此處的配置示例定義了用于加入的多播。 它還定義了IMap“ a”。

    關(guān)于配置的警告

    Hazelcast不會(huì)將配置復(fù)制到每個(gè)節(jié)點(diǎn)。 因此,如果希望能夠共享一種數(shù)據(jù)結(jié)構(gòu),則需要在每個(gè)節(jié)點(diǎn)中完全相同地定義它。

    這段代碼調(diào)出了兩個(gè)節(jié)點(diǎn),并使用IdGenerator將值放在實(shí)例的IMap中,以生成鍵并從instance2讀取數(shù)據(jù)。

    package hazelcastsimpleapp;import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.IdGenerator; import java.util.Map;/**** @author Daryl*/ public class HazelcastSimpleApp {/*** @param args the command line arguments*/public static void main(String[] args) {HazelcastInstance instance = Hazelcast.newHazelcastInstance();HazelcastInstance instance2 = Hazelcast.newHazelcastInstance();Map map = instance.getMap("a");IdGenerator gen = instance.getIdGenerator("gen");for(int i = 0; i < 10; i++) {map.put(gen.newId(), "stuff " + i);}Map map2 = instance2.getMap("a");for(Map.Entry entry: map2.entrySet()) {System.out.printf("entry: %d; %s\n", entry.getKey(), entry.getValue());}System.exit(0);}}

    非常簡(jiǎn)單,不是嗎! 請(qǐng)注意,檢索地圖實(shí)例時(shí),我什至沒有使用IMap接口。 我只是使用java.util.Map接口。 這不利于使用Hazelcast的分布式功能,但在此示例中,它工作正常。

    在這里可以觀察到工作中的假設(shè)。 第一個(gè)假設(shè)是將信息存儲(chǔ)為字節(jié)數(shù)組。 注意數(shù)據(jù)和密鑰是可序列化的。 這很重要,因?yàn)檫@是存儲(chǔ)數(shù)據(jù)所必需的。 第二個(gè)和第三個(gè)假設(shè)適用于instance2節(jié)點(diǎn)正在訪問的數(shù)據(jù)。 第四個(gè)假設(shè)成立是因?yàn)樽x取時(shí)會(huì)顯示放入“ a”映射中的每個(gè)值。 使用subversion可以在http://darylmathisonblog.googlecode.com/svn/trunk/HazelcastSimpleApp中找到所有這些示例。 該項(xiàng)目是使用Netbeans 8.0進(jìn)行的。

    結(jié)論

    通過顯示IMap和IdGenerator的簡(jiǎn)單示例回顧了Hazelcast眾多功能的快速概述。 討論了在分布式內(nèi)存數(shù)據(jù)庫環(huán)境中開發(fā)時(shí)適用的一系列假設(shè)。

    資源資源

    榛子之書。 從http://www.hazelcast.com下載

    翻譯自: https://www.javacodegeeks.com/2014/10/beginners-guide-to-hazelcast-part-1.html

    總結(jié)

    以上是生活随笔為你收集整理的Hazelcast入门指南第1部分的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。