Quarkus:一個Kubernetes原生Java框架

Red Hat發布了Quarkus,這是一個為GraalVM和OpenJDK HotSpot量身定制的Kubernetes原生Java框架。Quarkus的目標是使Java成為Kubernetes和無服務器環境中的領先平臺,為開發人員提供統一的反應式和命令式編程模型。

Quarkus利用Java開發人員使用的一系列庫,如Eclipse MicroProfile和Vert.x,帶來了一個全棧框架。Quarkus依賴注入基于CDI,允許開發人員使用JPA/Hibernate、JAX-RS/RESTEasy等。此外,Quarkus還包含一個擴展框架,第三方框架作者可以利用該框架對其進行擴展;這個擴展框架同時還編譯成了一個GraalVM原生二進制文件。

RedHat表示,Quarkus提供了可觀的運行時效率,比如快速啟動,支持在容器和Kubernetes上自動伸縮微服務,而低內存利用率有助于優化微服務體系結構部署中的容器密度。同時,它還提供了更小的應用程序和容器鏡像空間占用。

\"\"

(圖片來自: https://quarkus.io/)

按照設計,Quarkus完美地引入了命令式和反應式模型,旨在讓熟悉命令式模型但不想學習新范式的Java開發人員以及采用云原生/反應式模型方法的開發人員快速采用。

命令式風格:

@InjectSayService say;@GET@Produces(MediaType.TEXT_PLAIN)public String hello() {    return say.hello();}

反應式風格:

@Inject @Stream(\u0026quot;kafka\u0026quot;)Publisher reactiveSay;@GET@Produces(MediaType.SERVER_SENT_EVENTS)public Publisher stream() {    return reactiveSay;}

也可以使用Quarkus實現在無服務器環境中使用的函數,比如,下面是一個AWS Lambda的例子:

public class HelloLambda implements RequestHandler {    @Inject    HelloGreeter greeter;    @Override    public String handleRequest(HelloRequest request, Context context) {        return greeter.greet(request.firstName, request.lastName);    }}

Quarkus被設計成少配置或無配置,其工作方式很直觀。為此,開發人員可以用以下工具構建一個新項目:

mvn io.quarkus:quarkus-maven-plugin:0.12.0:create \\    -DprojectGroupId=my-groupId \\    -DprojectArtifactId=my-artifactId \\    -DprojectVersion=my-version \\    -DclassName=\u0026quot;org.my.group.MyResource\u0026quot;

Quarkus還提供了“在線編碼(Live Coding)”功能,使開發人員避免了編寫代碼→編譯→部署→刷新瀏覽器→重復的枯燥過程。運行mvn compile quarkus:dev,Quarkus將在開發模式下啟動。當它接收到HTTP請求時,它將保存該請求并檢查是否更改了任何應用程序源文件。如果有,它將透明地編譯更改的文件,重新部署應用程序,然后將HTTP請求發送給重新部署的應用程序。

Quarkus似乎至少是云時代一個有趣的替代方案。在這個時代,容器、Kubernetes、微服務、函數即服務(FaaS)和云原生應用程序正在提供更高級別的生產力和效率。

要了解關于Quarkus的更多細節,請訪問 quarkus.io。想要開始使用Quarkus的開發人員可以查看入門指南或其他可用的指南。

查看英文原文:Quarkus, a Kubernetes Native Java Framework

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536604.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536604.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分區安裝linux,怎樣安裝Linux?

我的機子上裝了win2000,想裝個Linux可是在安裝時,竟然D 、E盤都不見了,win2000也進不去了我只得重裝2000,現在我都不敢裝Linux了請高手指點!|你最好用PQMAGIC先分區,大約2。5G空間就夠了,可以參…

linux scp傳輸文件命令

scp -r /opt/test root192.168.2.105:/opt 轉載于:https://www.cnblogs.com/LynnChen/p/10620576.html

pg10 10.3 1 linux64,Install Postgresql 10 In Ubutnu 16.04 LTS

PostgreSQL數據庫是一個高性能的全功能的開源關系型數據庫,這里講解一下如何在Ubuntu 16.04 LTS 下安裝 PostgreSQL 10。添加軟件源wget -q -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -sudo sh -c echo "deb http://apt.po…

nginx能訪問html靜態文件但無法訪問php文件

nginx.conf中紅框部分修改成你的實際網站根目錄轉載于:https://www.cnblogs.com/IT-Crowd/p/10626549.html

linux虛擬光驅掛載方法,Linux操作系統下虛擬光驅(iso)的掛載

1、掛載iso文件一般查看iso文件內容,只需要:#mount -t iso9660 -o loop xxx.iso /mnt/cdrom就可以在/mnt/cdrom下看到xxx.iso的內容。2、復制光盤為iso鏡像#dd if/dev/hdb ofxxx.iso或者#cp /dev/cdrom xxx.iso3、虛擬iso為設備#rm -rf /dev/cdrom //刪除…

[深度概念]·K-Fold 交叉驗證 (Cross-Validation)的理解與應用

個人主頁--> xiaosongshine.github.io/ 1.K-Fold 交叉驗證概念在機器學習建模過程中,通行的做法通常是將數據分為訓練集和測試集。測試集是與訓練獨立的數據,完全不參與訓練,用于最終模型的評估。在訓練過程中,經常會出現過擬合…

linux mariadb 升級,linux mariadb

linux mariadb轉載 一 安裝下載mariaDB MariaDB-5.5.29-rhel5-x86_64-common.rpm 和MariaDB-5.5.29-rhel5-x86_64-server.rpm 包,MariaDB-5.5.29-rhel5-x86_64-client.rpm2.然后再http.//yum。mariadb。org/ 找到 RPM-GPG-KEY-MariaDB 這個PGP文件,把文件放入到/etc…

Linux Note

日期:2019/3/31 內容:Linux學習筆記 一、Linux命令 ls -l 操作效果 第一列:文件權限 一共10位。 01(r)2(w)3(x)4(r)5(w)6(x)7(r)8(w)9(x)文件類型文件所有者權限 usr權限,u權限文件所有者所屬組成員的權限 group權限,g…

linux查看usb鼠標是否啟動,Linux USB鼠標驅動注解及測試

參考2.6.14版本中的driver/usb/input/usbmouse.c。鼠標驅動可分為多個部分:驅動加載部分、probe部分、open部分、urb回調函數處理部分。下文陰影部分為注解。一、 驅動加載部分static int __init usb_mouse_init(void){int retval usb_register(&usb_mouse_…

退役前的最后的做題記錄upd:2019.04.04

考試考到自閉&#xff0c;每天被吊打。 還有幾天可能就要AFO了呢。。。 Luogu3602&#xff1a;Koishi Loves Segments 從左向右&#xff0c;每次刪除右端點最大的即可。 [HEOI2014]南園滿地堆輕絮 答案一定是 \(\lceil \frac{max_{1\le i < j \le n}(a_i-a_j)}{2} \rceil\)。…

linux ssh-add,linux – 如何使ssh-add從文件讀取密碼?

根據您的發行版本和ssh-add的版本,您可以使用或不使用以這種方式從stdin讀取密碼的ssh-add的-p選項&#xff1a;cat passfile | ssh-add -p keyfile如果這不工作,您可以使用Expect,Unix工具使交互式應用程序非互動.你必須從你的包管理器安裝它.我為你準備了一個工具.只需將內容…

linux nginx F配置,linux下nginx的安裝及配置

1、安裝nginx前&#xff0c;咱們首先要確保系統安裝了g、gcc、openssl-devel、pcre-devel和zlib-devel軟件&#xff0c;可經過如圖所示命令進行檢測,若是以安裝咱們能夠經過圖二所示卸載&#xff1a;linuxyum install gcc-cyum -y install zlib zlib-devel openssl openssl--de…

你缺啥,你缺一個得力的辦公軟件

其實你缺啥我都知道&#xff0c;但是&#xff0c;我又不能給你發工資&#xff0c;還得你自己努力工作才行。不過我可以給你分享幾款好用的辦公軟件&#xff0c;對你在進行有效率的辦公會有很大幫助的。曲奇辦公是一款以文檔為載體的企業辦公管理應用。幫助企業快速實現業務標準…

C語言做一個表格的程序,用C語言畫個簡單表格

今天見到個題目&#xff0c;就把他做了&#xff0c;題目如下&#xff1a;在圖形環境中很容易做出漂亮的表格。但在控制臺環境中就比較困難了。有的時候可以用一些符號大略地模擬&#xff1a;(word文檔中可能不整齊&#xff0c;拷貝到記事本中看)-------------|abc |xyztt|…

深度學習框架PyTorch一書的學習-第四章-神經網絡工具箱nn

參考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的網址去查看代碼&#xff0c;下面是本人的筆記 本章介紹的nn模塊是構建與autograd之上的神經網絡模塊 除了nn外還會介紹神經網絡中常用的工具&#xff0c;比如優化器optim、初始化init等 1.nn.Mod…

高級語言程序設計c 華南理工,華南理工大學高級語言程序設計(C)期末練習題

.. 《高級語言程序設計(C)》練習題一&#xff0e;單項選擇題1.用C語言編制的源程序要變為目標程序必須要經過( )。(a) 解釋(b) 匯編(c) 編輯(d) 編譯2. 執行C程序時出現的“溢出”錯誤屬于( )錯誤。(a) 編譯(b) 連接(c) 運行(d) 邏輯3. 按C標識符的語法規定&#xff0c;合法的標…

bevfusion 學習筆記

目錄 tensorrt ros部署&#xff1a; 也依賴ros2 c ros2安裝指導&#xff1a; 相機標定工具源碼&#xff1a; 官方github&#xff0c;部分模型開源 tensorrt ros部署&#xff1a; https://github.com/linClubs/BEVFusion-ROS-TensorRT 也依賴ros2 c GitHub - newintelli…

地鐵售票系統設計思想及部分代碼

設計思想&#xff1a;地鐵售票系統的關鍵點在于換乘&#xff0c;所以首先要分為換乘和不換乘兩種情況。不換乘比較簡單&#xff0c;通過起始站名和終點站名查詢他們的num&#xff0c;然后list打包輸出到jsp就可以。換乘的話就先要找到兩條線路&#xff0c;找到兩條線路的交點也…

數字帶通濾波器c語言程序,C語言編寫FIR數字低通濾波器

主要是獲取濾波器參數和卷積算法&#xff0c;參數根據自己的濾波器特性用matlab上面的一個fdatool工具配置生成&#xff0c;然后將這些參數寫入程序里面即可(參數可適當的乘以一個系數&#xff0c;對濾波沒任何影響)&#xff0c;我這里Fs 2k&#xff0c;Fpass 1k,Fstop 2k&am…

瀏覽器攔截跨域請求處理方法(已阻止跨源請求:同源策略禁止讀取遠程資源)

原文地址&#xff1a;http://my.oschina.net/lichaoqiang/blog/317823 在瀏覽器請求中&#xff0c;出現跨域訪問資源的問題&#xff0c;我們肯定會遇到。如果跨域請求被阻止&#xff0c;有可能導致css、js 、ajax請求、font字體等資源出現無法正常訪問的問題。接下來&#xff0…