欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

springboot與內(nèi)存數(shù)據(jù)庫(kù)Hazelcast整合是怎樣的

本篇文章為大家展示了spring boot與內(nèi)存數(shù)據(jù)庫(kù)Hazelcast整合是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

在合山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),合山網(wǎng)站建設(shè)費(fèi)用合理。

前言

spring boot 在此就不多做介紹了,想來(lái)大家對(duì)他應(yīng)該都不陌生了

Hazelcast 可能大家就畢竟陌生了:

  • 簡(jiǎn)單易用
    Hazelcast是用Java編寫的,沒(méi)有其他依賴關(guān)系。只需簡(jiǎn)單的把jar包引入項(xiàng)目的classpath即可創(chuàng)建集群。

  • 無(wú)主從模式
    與許多NOSQL解決方案不同,Hazelcast節(jié)點(diǎn)是點(diǎn)對(duì)點(diǎn)的。沒(méi)有主從關(guān)系; 所有成員都存儲(chǔ)相同數(shù)量的數(shù)據(jù),并進(jìn)行相等的處理,避免了單點(diǎn)故障。

  • 彈性可擴(kuò)展
    Hazelcast旨在擴(kuò)展成千上萬(wàn)的成員。新成員啟動(dòng),將自動(dòng)發(fā)現(xiàn)群集,并線性增加存儲(chǔ)和處理能力。成員之間通過(guò)TCP保持連接和通訊。

  • 讀寫快速高效
    Hazelcast所有數(shù)據(jù)都存儲(chǔ)在內(nèi)存中,提供基于內(nèi)存快速高效的讀寫能力。

PS:另外就是——根據(jù)基準(zhǔn)測(cè)試,Hazelcast在獲取數(shù)據(jù)方面比redis快56%,在設(shè)置數(shù)據(jù)方面比Redis快44%。 

用例

下面主要是講講springboot和Hazelcast的整合,并給出Hazelcast支持的數(shù)據(jù)類型MAP、List、Topic、Queue給出了使用實(shí)例。

整合配置:

@Configuration
public class HazelcastConfig {
	@Bean
	public Config config() {
		Config config = new Config();
		GroupConfig gc=new GroupConfig(Const.HAZELCAST_NAME);//解決同網(wǎng)段下,不同庫(kù)項(xiàng)目
		
		config.setInstanceName("hazelcast-instance")
				.addMapConfig(new MapConfig().setName("configuration")
				.setMaxSizeConfig(new MaxSizeConfig(2000, MaxSizeConfig.MaxSizePolicy.FREE_HEAP_SIZE))
				.setEvictionPolicy(EvictionPolicy.LRU).setTimeToLiveSeconds(-1))
				.setGroupConfig(gc);
		return config;
	}
	
	@Bean
	public HazelcastInstance hazelcastInstance(Config config) {
		HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance(config); 
		//分布式map監(jiān)聽(tīng)
		IMap<Object, Object> imap = hzInstance.getMap(Const.MAP_NAME);
		imap.addLocalEntryListener(new IMapListener());
		//攔截器(沒(méi)寫內(nèi)容)
		imap.addInterceptor(new IMapInterceptor());
		//發(fā)布/訂閱模式
		ITopic<String> topic = hzInstance.getTopic(Const.TOPIC_NAME); 
		topic.addMessageListener(new TopicListener());
		
		return hzInstance;
	}
}

map數(shù)據(jù)變化的攔截器實(shí)現(xiàn):

public class IMapInterceptor implements MapInterceptor{

	private static final long serialVersionUID = 3556808830046436753L;

	@Override
	public Object interceptGet(Object value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void afterGet(Object value) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public Object interceptPut(Object oldValue, Object newValue) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void afterPut(Object value) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public Object interceptRemove(Object removedValue) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void afterRemove(Object oldValue) {
		// TODO Auto-generated method stub
		
	}
}

map數(shù)據(jù)變化的監(jiān)聽(tīng)器實(shí)現(xiàn):

public class IMapListener implements EntryAddedListener<String, String>{

	@Override
	public void entryAdded(EntryEvent<String, String> event) {
		// TODO Auto-generated method stub
		//干你監(jiān)聽(tīng)的操作
		System.out.println("MAP分布式監(jiān)聽(tīng):"+event.getValue());
	}

}

Topic訂閱接收消息:

public class TopicListener implements MessageListener<String> {
	
	@Override
	public void onMessage(Message<String> message) {
		String msg=message.getMessageObject();
		System.out.println("收到Topic消息:"+msg);
	}
}

List和Queue的實(shí)例

這兩個(gè)我就沒(méi)寫在實(shí)際代碼中,在test寫了2個(gè)main方法

//生產(chǎn)數(shù)據(jù)
public class HazelcastGetStartServerMaster {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè) hazelcastInstance實(shí)例
        HazelcastInstance instance = Hazelcast.newHazelcastInstance();
        // 創(chuàng)建集群Map
        IList<Object> clusterMap = instance.getList("myList");
        clusterMap.add("list0");
        clusterMap.add("list1");

        // 創(chuàng)建集群Queue
        Queue<String> clusterQueue = instance.getQueue("MyQueue");
        clusterQueue.offer("Hello hazelcast!");
        clusterQueue.offer("Hello hazelcast queue!");
    }
}
//消費(fèi)數(shù)據(jù)
public class HazelcastGetStartServerSlave {
    public static void main(String[] args) {
        //創(chuàng)建一個(gè) hazelcastInstance實(shí)例
        HazelcastInstance instance = Hazelcast.newHazelcastInstance();
        IList<Object> clusterList = instance.getList("myList");
        Queue<String> clusterQueue = instance.getQueue("MyQueue");
        
        System.out.println("Map Value:" + clusterList.get(1));
        System.out.println("Queue Size :" + clusterQueue.size());
        System.out.println("Queue Value 1:" + clusterQueue.poll());
        System.out.println("Queue Value 2:" + clusterQueue.poll());
        System.out.println("Queue Size :" + clusterQueue.size());
    }
}

這個(gè)時(shí)候啟動(dòng)項(xiàng)目顯示如下:

spring boot與內(nèi)存數(shù)據(jù)庫(kù)Hazelcast整合是怎樣的

當(dāng)前只有一個(gè)節(jié)點(diǎn),端口為:5701

這個(gè)時(shí)候?qū)憘€(gè)main方法測(cè)試分布式map:

public class IMapTest {
	public static void main(String[] args) {
		Config config = new Config();
		GroupConfig gc=new GroupConfig(Const.HAZELCAST_NAME);
		config.setGroupConfig(gc);
		HazelcastInstance hzInstance = Hazelcast.newHazelcastInstance(config); 
		
		IMap<String, String> imap = hzInstance.getMap(Const.MAP_NAME);
		imap.put("myKey", "myObject");
    }
}

運(yùn)行main方法發(fā)現(xiàn)原來(lái)啟動(dòng)的項(xiàng)目找那個(gè)Member變成了2個(gè),因?yàn)閙ain方法中也啟動(dòng)了一個(gè)Hazelcast實(shí)例加入了集群中。imap的攔截器,我監(jiān)聽(tīng)器都生效了。并獲取到了main方法中加的數(shù)據(jù),因?yàn)镠azelcast是集群的,數(shù)據(jù)可以在許多應(yīng)用程序?qū)嵗g共享。

上述內(nèi)容就是spring boot與內(nèi)存數(shù)據(jù)庫(kù)Hazelcast整合是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享文章:springboot與內(nèi)存數(shù)據(jù)庫(kù)Hazelcast整合是怎樣的
當(dāng)前路徑:http://aaarwkj.com/article30/pjcipo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、定制開(kāi)發(fā)手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)微信公眾號(hào)、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
日韩无码一区二区视频| 欧美黄片完整版在线观看| 日韩精品色av一区二区| 欧美性色黄大片人与善| 狠狠综合久久av一区二区大宝| 国语自产精品视频在线不卡| 久久精品色妇熟妇丰满人妻| 美女被男人操国产精品| 色男人天堂亚洲男人天堂| 人妻天天爽夜夜爽欧美色| 天天操夜夜操狠狠操91| 亚洲中文字幕女同系列av专区| 久久亚洲中文字幕丝袜长腿| 国语少妇高潮对白在线| 亚洲一区二区三区在线观看呢| 亚洲欧洲中文字幕一区二区| 午夜激情在线观看国产| 粉嫩av北条麻妃电影| 中文字幕人妻系列东京热| 日日夜夜久久国产精品| 日本东京热在线免费观看| 小骚货操死你视频在线观看| 精品毛片av一区二区三区| 亚洲综合欧美自偷自拍| 国产av自拍在线免费观看| 中文字幕日韩人妻一二三区| 国产精品亚洲欧美中字| 午夜一区二区精品视频国产| 国产一级夫妻性生活欧美| 亚洲精品网址一区二区| 日本一欧美一欧美一亚洲| 亚洲欧洲日韩另类在线| 国产欧美成人精品第一区| 精品在欧美一区二区少妇| 欧美日韩免费爱爱视频| 蜜桃av网站在线播放| 黄色av一本二本在线观看| 伊人丁香六月日日操操| 国产精品久久久亚洲不卡| 老熟女乱色一区二区三区| 久久91亚洲精品久久91|