MicroStream + Helidon高效能Java持久層

banq發表於2021-11-14

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

 

相關文章