MicroStream + Helidon高性能Java持久层


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

你可以用这个例子自己试试:案例源码
Helidon SE + MicroStream 示例
 
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