麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Java > 正文

Spring Boot和Hazelcast使用詳解

2024-07-14 08:42:15
字體:
來源:轉載
供稿:網(wǎng)友

你是否遇到過應用程序性能下降的問題?有沒有想過提升Spring性能?如果是這樣 - 那么這篇文章絕對適合你。在這里,我們將談論使用超級強大和領先的內存數(shù)據(jù)網(wǎng)格提高應用程序的性能!

什么是Hazelcast?

Hazelcast是一個內存分布式計算平臺,用于管理數(shù)據(jù)并并行執(zhí)行執(zhí)行應用程序。

1. 它是用Java編寫的。
2. 與其他一些內存數(shù)據(jù)庫(如redis)不同,Hazelcast是多線程的,這意味著可從所有可用的CPU內核中受益。
3. 與其他內存數(shù)據(jù)網(wǎng)格不同 - 它設計用于分布式環(huán)境。它支持每個群集無限數(shù)量的map和緩存。

根據(jù)基準測試,Hazelcast在獲取數(shù)據(jù)方面比Redis快56%,在設置數(shù)據(jù)方面比Redis快44%。

Hazelcast是一個高度可擴展的數(shù)據(jù)分發(fā)和集群平臺。特性包括:

  1. 提供java.util.{Queue, Set, List, Map}分布式實現(xiàn)。
  2. 提供java.util.concurrency.locks.Lock分布式實現(xiàn)。
  3. 提供java.util.concurrent.ExecutorService分布式實現(xiàn)。
  4. 提供用于一對多關系的分布式MultiMap。
  5. 提供用于發(fā)布/訂閱的分布式Topic(主題)。
  6. 通過JCA與J2EE容器集成和事務支持。
  7. 提供用于安全集群的Socket層加密。
  8. 支持同步和異步持久化。
  9. 為Hibernate提供二級緩存Provider 。
  10. 通過JMX監(jiān)控和管理集群。
  11. 支持動態(tài)HTTP Session集群。
  12. 利用備份實現(xiàn)動態(tài)分割。
  13. 支持動態(tài)故障恢復。

現(xiàn)在需要將它添加到Spring Boot項目中并開始使用它的優(yōu)勢。

<parent>   <groupId> org.springframework.boot </ groupId>   <artifactId> spring-boot-starter-parent </ artifactId>   <version> 2.0.0.RELEASE </ version> </ parent> <dependencies>   <dependency >     <groupId> org.springframework.boot </ groupId>     <artifactId> spring-boot-starter-web </ artifactId>   </ dependency>   <dependency>     <groupId> com.hazelcast </ groupId>     <artifactId> hazelcast </ artifactId>   </ dependency>   <dependency>     <groupId> com.hazelcast </ groupId>     <artifactId> hazelcast-spring </ artifactId>   </ dependency> </ dependencies>

要將Hazelcast添加到Spring Boot應用程序,只需要兩個依賴項。下我們需要配置Hazelcast實例。有兩種方法可以做到這一點:

1. 通過Java配置。
2. 通過創(chuàng)建hazelcast.xml配置文件。

我們選擇第一個方式:

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;   } }

實例已配置 - 現(xiàn)在我們可以訪問Hazelcast并使用數(shù)據(jù)進行操作。

對于這個例子,將創(chuàng)建只有3個映射的HazelcastController:

  • 一個是設置數(shù)據(jù);
  • 一種是按ke鍵查詢數(shù)據(jù);
  • 一個是從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) {    Map<String, String> hazelcastMap = hazelcastInstance.getMap("my-map");    hazelcastMap.put(key, value);    return "Data is stored.";  }  @GetMapping(value = "/read-data")  public String readDataFromHazelcast(@RequestParam String key) {    Map<String, String> hazelcastMap = hazelcastInstance.getMap("my-map");    return hazelcastMap.get(key);  }  @GetMapping(value = "/read-all-data")  public Map<String, String> readAllDataFromHazelcast() {    Map<String, String> hazelcastMap = hazelcastInstance.getMap("my-map");    return hazelcastInstance.getMap("my-map");  }}

在控制器中,我們自動安裝了HazelcastInstance? - 這是Hazelcast庫提供的接口。通過使用此實例,我們可以操作內存數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)。因此,可以使用Postman將一些記錄保存到Hazelcast中。

重要的是 - 即使從不同的SpringBoot應用程序實例啟動,也可以將數(shù)據(jù)存儲在同一個緩存中。比如可以將應用程序端口更改為8081,并運行該應用程序的另一個實例,然后將嘗試從之前存儲的Hazelcast中獲取所有數(shù)據(jù)。

因為Hazelcast是集群的,數(shù)據(jù)可以在許多應用程序實例之間共享。

源碼:Github

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 草草在线视频 | 精品一区二区三区免费 | 高清国产福利 | 成人永久免费视频 | av成人在线免费观看 | 一区二区久久精品66国产精品 | xxxx69hd一hd| av中文一区 | 久久久久久久久久久亚洲 | 欧美精品一区自拍a毛片在线视频 | 一级毛片免费高清 | 国产乱淫av| 姑娘第四集免费看视频 | 一级免费a| 久久久久久亚洲国产精品 | 黄色片网站免费看 | 亚洲国产精品高潮呻吟久久 | 一级毛片真人免费播放视频 | 国产va在线观看免费 | 俄罗斯16一20sex牲色另类 | 九色免费视频 | 一级片999 | 欧美一级免费在线观看 | 欧美成人黄色小视频 | 中文字幕免费在线观看视频 | 91福利社在线 | 久久精品无码一区二区日韩av | 一级毛片播放 | 欧美成人一区免费视频 | 黑人日比 | 久久精品国产一区二区 | av噜噜噜噜 | 亚洲精品一区二区三区在线看 | 九九午夜视频 | 看免费黄色大片 | 中国字幕av | 精品一区二区免费视频视频 | 国产午夜精品一区二区三区嫩草 | 国产午夜亚洲精品 | 亚洲乱码精品久久久久 | 国产精品一区二区三区99 |