内容简介:你是否遇到过应用程序性能下降的问题?有没有想过提升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使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- RecyclerView使用指南(一)—— 基本使用
- 如何使用Meteorjs使用URL参数
- 使用 defer 还是不使用 defer?
- 使用 Typescript 加强 Vuex 使用体验
- [译] 何时使用 Rust?何时使用 Go?
- UDP协议的正确使用场合(谨慎使用)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
敏捷软件开发
Robert C.Martin,、Micah Martin / 邓辉、孙鸣 / 人民邮电出版社 / 2010-12 / 79.00元
要想成为一名优秀的软件开发人员,需要熟练应用编程语言和开发工具,更重要的是能够领悟优美代码背后的原则和前人总结的经验——这正是本书的主题。本书凝聚了世界级软件开发大师Robert C. Martin数十年软件开发和培训经验,Java版曾荣获计算机图书最高荣誉——Jolt大奖,是广受推崇的经典著作,自出版以来一直畅销不衰。 不要被书名误导了,本书不是那种以开发过程为主题的敏捷软件开发类图书。在......一起来看看 《敏捷软件开发》 这本书的介绍吧!