Spring Boot和Hazelcast使用

栏目: 服务器 · 发布时间: 5年前

内容简介:你是否遇到过应用程序性能下降的问题?有没有想过提升Spring性能?如果是这样 - 那么这篇文章绝对适合你。在这里,我们将谈论使用超级强大和领先的内存数据网格提高应用程序的性能!Hazelcast是一个内存分布式计算平台,用于管理数据并并行执行执行应用程序。

你是否遇到过应用程序性能下降的问题?有没有想过提升Spring性能?如果是这样 - 那么这篇文章绝对适合你。在这里,我们将谈论使用超级强大和领先的内存数据网格提高应用程序的性能!

什么是Hazelcast?

Hazelcast是一个内存分布式计算平台,用于管理数据并并行执行执行应用程序。

1. 它是用 Java 编写的。

2. 与其他一些内存数据库(如redis)不同,Hazelcast是多线程的,这意味着可从所有可用的CPU内核中受益。

3. 与其他内存数据网格不同 - 它设计用于分布式环境。它支持每个群集无限数量的map和缓存。

根据基准测试,Hazelcast在获取数据方面比 Redis 快56%,在设置数据方面比Redis快44%。

现在需要将它添加到Spring Boot项目中并开始使用它的优势。

<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. 通过创建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; 
    } 
}

实例已配置 - 现在我们可以访问Hazelcast并使用数据进行操作。

对于这个例子,将创建只有3个映射的HazelcastController:

一个是设置数据;

一种是按ke键查询数据;

一个是从Hazelcast获取所有数据;

@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库提供的接口。通过使用此实例,我们可以操作内存数据网格中的数据。因此,可以使用Postman将一些记录保存到Hazelcast中。

重要的是 - 即使从不同的SpringBoot应用程序实例启动,也可以将数据存储在同一个缓存中。比如可以将应用程序端口更改为8081,并运行该应用程序的另一个实例,然后将尝试从之前存储的Hazelcast中获取所有数据。

因为Hazelcast是集群的,数据可以在许多应用程序实例之间共享。

源码:


以上所述就是小编给大家介绍的《Spring Boot和Hazelcast使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Art of Computer Programming, Volumes 1-3 Boxed Set

The Art of Computer Programming, Volumes 1-3 Boxed Set

Donald E. Knuth / Addison-Wesley Professional / 1998-10-15 / USD 199.99

This multivolume work is widely recognized as the definitive description of classical computer science. The first three volumes have for decades been an invaluable resource in programming theory and p......一起来看看 《The Art of Computer Programming, Volumes 1-3 Boxed Set》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具