21-11-14
banq
MicroStream是行业中真正的游戏规则改变者。如果你想创建真正高性能的微服务,在真正高压的环境中工作,那么Helidon + MicroStream是一个非常好的选择!它不仅易于设置和使用,而且现在已完全集成。
MicroStream 取代了重量级的 JPA,并允许您存储和部分加载任何 Java 对象图或子图。它还提供微秒响应时间和超高吞吐量以及最小延迟。现在,您可以将 MicroStream 与 Helidon 2.4 结合使用来创建超快速的内存中数据库应用程序和微服务。
MicroStream提供高性能的 Java 原生对象图持久性。
MicroStream 彻底改造了 Java 的序列化机制,提供了将部分加载的对象直接保存到磁盘、数据库或云对象存储的能力。只需选择正确的商店经理。
Helidon现在已经完全集成了这项技术。
MicroStream + Helidon MP
MicroStream 现在与 Helidon 完全集成,这意味着 MicroStream 组件可以直接从 Helidon 配置读取其所有配置。
有一组特殊的注释可以注入存储管理器:
首先,添加 Maven 依赖项:
<dependency> <groupId>io.helidon.integrations.microstream</groupId> <artifactId>helidon-integrations-microstream-cdi</artifactId> </dependency> |
然后你可以使用 MicroStream 支持:
@Inject public GreetingProvider(@MicrostreamStorage(configNode = "one.microstream.storage.greetings") EmbeddedStorageManager storage) { super(); this.storage = storage; greetingMessages = (List<String>) storage.root(); if (greetingMessages == null) { greetingMessages = new ArrayList<>(); storage.setRoot(greetingMessages); storage.storeRoot(); addGreeting("Hello"); } } |
它从microprofile-config.properties文件中读取配置。
one.microstream.storage.greetings.storage-directory=./greetingsStorage |
你可以用这个例子自己试试:案例源码
MicroStream 缓存
MicroStream 提供了自己的 JSR107 实现——缓存支持。
添加此 Maven 依赖项时可用:
<dependency> <groupId>io.helidon.integrations.microstream</groupId> <artifactId>helidon-integrations-microstream-cdi</artifactId> </dependency> |
然后我们可以修改我们的 Greetings 应用程序来为我们的问候使用缓存:
Cache<String, String> greetingsCache; @Inject public GreetingsProvider(@MicrostreamCache(configNode= "one.microstream.cache", name = "greetingsCache") Cache<String, String> cache) { super(); this.greetingsCache = cache; } public String get(String key) { return greetingsCache.get(key); } public void add(String key, String responseObject) { greetingsCache.put(key, responseObject); } |
有一个特殊的@MicrostreamCache注释将从microprofile-config.properties读取所有缓存配置:
Microstream cache config one.microstream.cache.storage.storage-directory = ./greetingsCache one.microstream.cache.keyType = java.lang.String one.microstream.cache.valueType = java.lang.String one.microstream.cache.readThrough = true one.microstream.cache.writeThrough = true |