91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle推出輕量級Java微服務框架Helidon的示例分析

發布時間:2021-10-12 10:36:06 來源:億速云 閱讀:121 作者:柒染 欄目:云計算

Oracle推出輕量級Java微服務框架Helidon的示例分析,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

近日,Oracle 推出 了一個新的開源框架 Helidon ,該項目是一個用于創建基于微服務的應用程序的Java庫集合。和 Payara Micro 、 Thorntail (之前的 WildFly Swarm )、 OpenLiberty 、TomEE 等項目一樣,該項目也加入了MicroProfile家族。

Helidon最初被命名為J4C(Java for Cloud),其設計以簡單、快速為目標,它包括兩個版本:Helidon SE 和 Helidon MP 。Helidon SE提供了創建微服務的三個核心API:Web服務器、配置和安全,用于構建基于微服務的應用程序,不需要應用服務器。Helidon MP支持用于構建基于微服務的應用程序的MicroProfile 1.1規范。

Web服務器

受NodeJS和其他Java框架的啟發,Helidon的Web服務器是一個異步、反應性API,運行在 Netty 之上。 WebServer 接口包括對配置、路由、錯誤處理以及構建 度量和健康 端點的支持。

下面的示例代碼演示了如何啟動一個簡單的Helidon Web服務器,在一個隨機可用的端口上顯示“ It works! ”:  

// 在一個隨機可用的端口上啟動服務器
public void startWebServerUsingRandomPort() throws Exception {
    WebServer webServer = WebServer
           .create(Routing.builder()
                   .any((req,res) -> res.send("It works!" + "\n"))
                   .build())
           .start()
           .toCompletableFuture()
           .get(10,TimeUnit.SECONDS);
    System.out.println("Server started at: http://localhost:" + webServer.port() + "\n");
    webServer.shutdown().toCompletableFuture();
    }

配置

配置組件 Config 加載和處理鍵/值格式的配置屬性。在默認情況下,配置屬性將從定義好的 application.properties 或 application.yaml 文件中讀取,它們位于 /src/main/resources 目錄下。

下面的示例代碼基于前面的例子構建,它演示了如何使用 Config ,通過讀取 applications.yaml 文件獲得指定的端口啟動Web服務器。  

// application.yaml
server:
 port: 8080
 host: 0.0.0.0

 
// 在application.yaml預定義的端口上啟動服務器
public void startWebServerUsingDefinedPort() throws Exception {
    Config config = Config.create();
    ServerConfiguration serverConfig = ServerConfiguration.fromConfig(config.get("server"));
    WebServer webServer = WebServer
           .create(serverConfig,Routing.builder()
                   .any((req,res) -> res.send("It works!" + "\n"))
                   .build())
           .start()
           .toCompletableFuture()
           .get(10,TimeUnit.SECONDS);
    System.out.println("Server started at: http://localhost:" + webServer.port() + "\n");
    webServer.shutdown().toCompletableFuture();
    }

安全

類 Security 為身份驗證、授權和審計提供支持。已經有許多用于Helidon應用程序的 安全提供程序 實現。有三種方法可以將安全性內置到Helidon應用程序中:從構建器、通過配置或者是前兩者的結合。

下面的示例代碼演示了如何構建 Security 實例、使用 Config 獲取用戶身份驗證(使用加密密碼)并顯示服務器時間。

// application.yaml
http-basic-auth:
 users:
   login: "mpredli"
   password: "${CLEAR=somePassword}"
   roles: ["user","admin"]

 
Config config = Config.create();
Security security = Security.builder()
       .config(config)
       .addProvider(...)
       .build();
String user = config.get("http-basic-auth.users.login").asString();
String password = config.get("http-basic-auth.users.password").asString();
System.out.println("\n");
System.out.println("INFO: user = " + user);
System.out.println("INFO: password = " + password);
SecurityTime time = SecurityTime.builder().build();
time = security.getServerTime();
System.out.println("INFO: server time = " + time.toString());
System.out.println("\n");

GitHub

提供了更詳盡的安全示例。

Helidon的架構

下面的架構圖顯示了Helidon SE和Helidon MP的關系。

Oracle推出輕量級Java微服務框架Helidon的示例分析

下圖說明了Helidon SE和Helidon MP所屬的微服務框架類別。

Oracle推出輕量級Java微服務框架Helidon的示例分析

入門指南

Helidon提供了 快速入門示例 來演示Helidon SE和Helidon MP之間的區別。

下面的Maven和Java命令將生成并打包Helidon SE示例,使用Helidon的Web服務器創建一個REST服務。

$ mvn archetype:generate -DinteractiveMode=false \
    -DarchetypeGroupId=io.helidon.archetypes \
    -DarchetypeArtifactId=helidon-quickstart-se \
    -DarchetypeVersion=0.10.1 \
    -DgroupId=io.helidon.examples \
    -DartifactId=quickstart-se \
    -Dpackage=io.helidon.examples.quickstart.se

 
$ cd quickstart-se
$ mvn package
$ java -jar target/quickstart-se.jar

下面的Maven和Java命令將生成并打包Helidon MP示例,使用MicroProfile的JAX-RS API創建一個REST服務。

$ mvn archetype:generate -DinteractiveMode=false \
    -DarchetypeGroupId=io.helidon.archetypes \
    -DarchetypeArtifactId=helidon-quickstart-mp \
    -DarchetypeVersion=0.10.1 \
    -DgroupId=io.helidon.examples \
    -DartifactId=quickstart-mp \
    -Dpackage=io.helidon.examples.quickstart.mp

 
$ cd quickstart-mp
$ mvn package
$ java -jar target/quickstart-mp.jar

一旦服務器開始運行,就可以執行下面的命令

在 GitHub 上可以找到整個Helidon項目。

Oracle的高級軟件開發經理 Dmitry Kornilov 向infoQ介紹了這個新項目。

InfoQ:是什么給了甲骨文開發這個新微服務框架的啟發?

在此我向大家推薦一個架構學習交流君羊。交流學習君羊:821169538  里面會分享一些資深架構師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高并發、高性能、分布式、微服務架構的原理,JVM性能優化、分布式架構等這些成為架構師必備的知識體系。還能領取免費的學習資源,目前受益良多。

Dmitry Kornilov:有關Helidon的工作已經開始一段時間了。當創建云服務的微服務體系結構開始變得非常流行時,開發體驗也需要改變。Java EE是一種穩定的技術,但是它有很多遺留代碼。我們沒有在Java EE上構建微服務,我們意識到,我們需要一個從頭開始設計的構建微服務的新框架。Helidon就是這樣出現的。

InfoQ:與OpenLiberty、Thorntail、Payara Micro和TomEE等其他MicroProfile實現相比,Helidon有什么獨特之處?

Kornilov:Helidon不僅僅是一個MicroProfile實現。它有兩個版本:Helidon SE和Helidon MP。

Helidon SE構成了Helidon的核心。它是一組輕量級的庫,其中的庫可以單獨使用,但如果一起使用,就可以滿足開發人員創建微服務的基本需求:配置、安全和Web服務器。它帶來了一種開發人員喜歡的更現代的反應性方法。我們總是盡力明確:不使用注入“魔法”,使Helidon SE應用程序易于調試。沒有特殊的jar格式,沒有特殊的類加載器。你的應用程序只是一個普通的Java SE應用程序。這也意味著,它與所有IDE兼容,不需要特殊的插件。

Helidon MP是我們的MicroProfile實現,它以Helidon SE為基礎構建——它不是派生自某個應用服務器。因此,沒有部署模型,沒有Java EE打包,沒有你不需要的額外的東西。

InfoQ:為什么實現的是MicroProfile 1.1規范,而不是一個更新的版本?

Kornilov:Helidon的開發在一段時間之前就開始了,我們決定堅持使用當時最新的MicroProfile版本。我們正在不斷地改進Helidon,對新的MicroProfile版本的支持很快就會到來。

InfoQ:接下來,尤其是在Jakarta EE支持和MicroProfile規范較新版本的支持方面,Helidon將開展哪些工作?

Kornilov:我已經提到過,我們正致力于對MicroProfile較新版本的支持。當新的Jakarta EE 規范出現時,我們將參與它們的開發并在Helidon中支持它們。此外,我們計劃向Helidon添加Oracle Cloud集成特性、HTTP客戶端支持、項目啟動器Web應用,并不斷改進我們的示例和文檔。

看完上述內容,你們掌握Oracle推出輕量級Java微服務框架Helidon的示例分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白玉县| 兖州市| 治县。| 曲靖市| 临西县| 奉化市| 和田县| 清镇市| 蒙城县| 拉萨市| 瑞安市| 永德县| 安吉县| 三门峡市| 城步| 漠河县| 平阳县| 信宜市| 磐石市| 金堂县| 墨竹工卡县| 安图县| 枣庄市| 万源市| 韶山市| 凤庆县| 砀山县| 阿拉善盟| 吉安县| 顺昌县| 延寿县| 滦平县| 尼玛县| 三门峡市| 江阴市| 安国市| 湄潭县| 定陶县| 东乌珠穆沁旗| 容城县| 新邵县|