今天就跟大家聊聊有關(guān)Hazelcast怎么在Spring Boot中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
金門網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
什么是Hazelcast?
Hazelcast是一個(gè)內(nèi)存分布式計(jì)算平臺(tái),用于管理數(shù)據(jù)并并行執(zhí)行執(zhí)行應(yīng)用程序。
1. 它是用Java編寫的。
2. 與其他一些內(nèi)存數(shù)據(jù)庫(如redis)不同,Hazelcast是多線程的,這意味著可從所有可用的CPU內(nèi)核中受益。
3. 與其他內(nèi)存數(shù)據(jù)網(wǎng)格不同 - 它設(shè)計(jì)用于分布式環(huán)境。它支持每個(gè)群集無限數(shù)量的map和緩存。
根據(jù)基準(zhǔn)測試,Hazelcast在獲取數(shù)據(jù)方面比Redis快56%,在設(shè)置數(shù)據(jù)方面比Redis快44%。
Hazelcast是一個(gè)高度可擴(kuò)展的數(shù)據(jù)分發(fā)和集群平臺(tái)。特性包括:
提供java.util.{Queue, Set, List, Map}分布式實(shí)現(xiàn)。
提供java.util.concurrency.locks.Lock分布式實(shí)現(xiàn)。
提供java.util.concurrent.ExecutorService分布式實(shí)現(xiàn)。
提供用于一對多關(guān)系的分布式MultiMap。
提供用于發(fā)布/訂閱的分布式Topic(主題)。
通過JCA與J2EE容器集成和事務(wù)支持。
提供用于安全集群的Socket層加密。
支持同步和異步持久化。
為Hibernate提供二級緩存Provider 。
通過JMX監(jiān)控和管理集群。
支持動(dòng)態(tài)HTTP Session集群。
利用備份實(shí)現(xiàn)動(dòng)態(tài)分割。
支持動(dòng)態(tài)故障恢復(fù)。
現(xiàn)在需要將它添加到Spring Boot項(xiàng)目中并開始使用它的優(yōu)勢。
org.springframework.boot groupId> spring-boot-starter-parent artifactId> 2.0.0.RELEASE version> parent> org.springframework.boot groupId> spring-boot-starter-web artifactId> dependency> com.hazelcast groupId> hazelcast artifactId> dependency> com.hazelcast groupId> hazelcast-spring artifactId> dependency> dependencies>
要將Hazelcast添加到Spring Boot應(yīng)用程序,只需要兩個(gè)依賴項(xiàng)。下我們需要配置Hazelcast實(shí)例。有兩種方法可以做到這一點(diǎn):
1. 通過Java配置。
2. 通過創(chuàng)建hazelcast.xml配置文件。
我們選擇第一個(gè)方式:
import com.hazelcast.config.Config; import com.hazelcast.config.EvictionPolicy; import com.hazelcast.config.MapConfig; import com.hazelcast.config.MaxSizeConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class HazelcastConfiguration { @Bean public Config hazelCastConfig(){ Config config = new Config(); config.setInstanceName(“hazelcast-instance”)。 addMapConfig( new MapConfig()。 setName(“configuration”) .setMaxSizeConfig(新MaxSizeConfig(200,MaxSizeConfig.MaxSizePolicy。FREE_HEAP_SIZE)) .setEvictionPolicy(EvictionPolicy。LRU) .setTimeToLiveSeconds(-1)); return config; } }
實(shí)例已配置 - 現(xiàn)在我們可以訪問Hazelcast并使用數(shù)據(jù)進(jìn)行操作。
對于這個(gè)例子,將創(chuàng)建只有3個(gè)映射的HazelcastController:
一個(gè)是設(shè)置數(shù)據(jù);
一種是按ke鍵查詢數(shù)據(jù);
一個(gè)是從Hazelcast獲取所有數(shù)據(jù);
@RestController @RequestMapping("/hazelcast") public class HazelcastController { private final Logger logger = LoggerFactory.getLogger(HazelcastController.class); private final HazelcastInstance hazelcastInstance; @Autowired HazelcastController(HazelcastInstance hazelcastInstance) { this.hazelcastInstance = hazelcastInstance; } @PostMapping(value = "/write-data") public String writeDataToHazelcast(@RequestParam String key, @RequestParam String value) { MaphazelcastMap = hazelcastInstance.getMap("my-map"); hazelcastMap.put(key, value); return "Data is stored."; } @GetMapping(value = "/read-data") public String readDataFromHazelcast(@RequestParam String key) { Map hazelcastMap = hazelcastInstance.getMap("my-map"); return hazelcastMap.get(key); } @GetMapping(value = "/read-all-data") public Map readAllDataFromHazelcast() { Map hazelcastMap = hazelcastInstance.getMap("my-map"); return hazelcastInstance.getMap("my-map"); } }
看完上述內(nèi)容,你們對Hazelcast怎么在Spring Boot中使用有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。