日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

如何进行基于Anolis OS的企业级Java应用规模化实践?|龙蜥技术

發布時間:2024/8/23 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何进行基于Anolis OS的企业级Java应用规模化实践?|龙蜥技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:提供了7×24小時的專屬釘釘或者電話支持,響應時間保證到在業務不可用情況下10分鐘響應,業務一般的問題在一小時可以獲得響應,主要城市可以兩小時內得到到達現場的服務。

本文作者郁磊,是Java語言與虛擬機SIG負責人。整理自云棲大會龍蜥專場論壇的技術分享,云棲系列視頻已經上線,歡迎觀看:云棲大會龍蜥專場論壇

Alibaba Dragonwell 是一款 OpenJDK 的發行版。OpenAnolis 是企業級的操作系統,企業級操作系統必然包含企業級應用的運行時。眾所周知,紅帽的 CentOS 發行版里面其實有紅帽自己做的 JDK 發行版,這既是他們對自己運行時技術可控的自信,也是對用戶負責,比如說 OpenJDK 出現任何問題,他們可以在發行版上做改動,去幫助用戶解決問題。

Java企業應用

Java 一直是企業級最佳的選擇,其中有很多原因,目前云原生環境下,它有非常成熟的容器化方案,有 Spring boot 這樣的框架來幫助我們把應用打包成一個非常適合容器運行的模式。也有很多分布式的中間件,比如說 Spring cloud,可以幫助我們構造分布式應用。Java也有非常好的規范以及開源生態,但 Oracle 雖然控制著 Java,同時也推進著Java標準往前演進,標準使得語言一直是可以控制的方向發展,非常適合開發企業級應用。里面有非常繁榮的生態,比如 Maven 可以幫助開發者快速獲得開發依賴,還有Netty、Tomcat、Spring。雖然 Spring 可以看做是挑戰 Jakarta EE的角色,但是它本身也受到 Java 的很多影響,因此可以說是Jakarta EE也在幫助Spring發展。

高效,運行時的高效和開發時的高效。運行時的高效體現在 Java 的執行速度,一個數據是 Java 的運行效率可以排在各大編程語言第四,效率可以達到 C 語言的二分之一,這在高級語言里非常難得的。

最后是行業實踐,在互聯網金融等行業里大規模使用 Java。

大家認為硬件+操作系統+應用就構成整個應用,其實運行時對于應用的運行影響是非常大的,通過一個例子解釋。

這是我們在企業客戶里遇到的一個問題,在 Java 運行時開始很好,經過一天以后性能就變成 1/2,越來越慢,只能選取變慢的實例重啟,他能做的就是把變慢的實例直接重啟或者是擴容,因為變慢后需要更多的機器支撐容量。但這并不解決問題,因為變慢這個行為持續在發生。

最后排查出是 JIT 相關問題, Java應用有 JIT 編譯器,也有解釋模式,我可以給大家一個數字,編譯模式要比解釋模式快 50 倍左右,所以有部分代碼執行在解釋模式的話,影響非常大,假如有 2% 的代碼在解釋器模式,則整個應用一半的時間在執行解釋器,一半的時間在執行編譯器,性能下降一倍。假如說一半的代碼退到解釋器,那應用就會慢 25 倍左右,所以運行時對應用有深遠影響。

阿里巴巴 Dragonwell 和 Eclipse Temurin 都是 OpenJDK 的開源發行版本,為什么近年來除了谷歌以外所有的頭部云廠商都推出了自己的發行版。自 OpenJDK9 開始,每半年發布一個版本,這個版本只會維護一年,比如說 OpenJDK 從 2018 年 3 月開始維護到 2019 年 3 月,中間只有一年的維護時間,選取這樣的策略是因為 OpenJDK9 引入了很多新的特性,比如說模塊化,對開發進程影響非常大,所以選取了這樣一種滾動升級策略。

假如我們的用戶想去使用最新的JDK,那他必須接受滾動升級。比如說現在Java已經到了17了,五年后Java會到達27的版本,這樣的升級頻率肯定是接受不了的。假設Java用戶停留在老版本是不是可以避免這種滾動升級?實際也不行, Java遠程執行漏洞非常多,我們可以通過序列化構造一些遠程代碼執行的例子,這是非常可怕的。各個云廠商都提供了自己的OpenJDK發行版,想獲得Oracle也是可以的,是收費的。

阿里巴巴Dragonwell就是在這種背景下產生出了Java運行時,我們完全依托開源社區建設,我們參與了非常多國際上的高質量社區,現在也加入了龍蜥社區,其中包括Java的JCP-EC,阿里巴巴是國內唯一一個加入EC席位的企業(EC的全稱是執行委員會)。

Alibaba Dragonwell是在OpenJDK的基礎上增加了一些自己的功能,構成了阿里巴巴Dragonwell發行版本。我們會發布穩定的發行版本,并且提供定期的安全補丁,質量體系接軌國際,基于Adoptium的CI,Adoptium組織由各個JDK的頭部廠商維護,包括微軟、IBM都參與其中。經過測試以后,我們會在阿里巴巴線上驗證;SVT系統驗證,會用spring等常用框架進行驗證我們的JDK。我們也支持多平臺,比如Linux、windows;RISC-V架構的支持也已經提上日程。

和Java企業計算相關的另外一個發行版是Eclipse Temurin,它源自AdoptOpenJDK。AdoptOpenJDK是怎么來的?可以看到前面的Oracle發布策略,大家使用OpenJDK會越來越困難,所以倫敦的Java User Group創建AdoptOpenJDK項目,讓OpenJDK可以方便地被用戶使用。該項目編譯OpenJDK的source code,經過aqa-tests才會release出來,可以說是原汁原味的OpenJDK。和Alibaba Dragonwell的差異是:上一頁有一塊Dragonwell補丁,而Temurin是原汁原味的OpenJDK。

Aqa-tests包括性能測試,OpenJDK自帶測試。其中的system測試會驗證Java的模塊化系統,Java的自帶工具等。后面是external,包括Java生態里面常見的一些軟件,像scala、kafka。最后是標準的JCK,Oracle所頒布的一個標準,只要JDK發行版跑過驗證就是標準的JDK。

很多傳統企業用戶不需要阿里巴巴Dragonwell里面為云或者互聯網設計的功能,他可以選擇Eclipse Temurin發行版。

讓我們看看使用這兩個發行版企業可以獲得什么。

  • 安全特性,Java的TSL能力是通過JSSE接口使用的,Eclipse Temurin和Alibaba Dragonwell的JSSE能力都會經過驗證,這對企業用戶是非常重要的
  • 兼容性,Dragonwell基于OpenJDK而Temurin是原汁原味的OpenJDK,從OracleJDK遷移到OpenJDK可以保證兼容性。
  • Java生態的集成驗證
  • 定期安全補丁,Alibaba Dragonwell或者Eclipse Temurin,這兩個發行版是完全以完全開源的形式運作的。我們會以每三個月一次的固定發行周期提供訂閱支持。
  • Alibaba Dragonwell上有很多阿里巴巴自己擴展的云原生特性,通過這些特性我們可以輕易的排查問題或者輕易的減少資源使用,或者是降低總體成本,這是Eclipse Temurin和OracleJDK所沒有的。

    基于這兩個JDK發行版本我們提供了企業服務體系。如果企業用戶從OracleJDK某個版本遷移過來,首先面臨的問題是遷移。Java的版本遷移不像GO或者其他語言那樣輕松,比如JDK8遷移到11或者17,都有很大的遷移工作量。我們提供遷移了工具,并積累了許多遷移經驗文檔給到企業去遷移到Eclipse Temurin或者Alibaba Dragonwell。

    Java由于龐大的類庫會隱含很多的安全問題。如果選擇訂閱了Alibaba Dragonwell企業支持服務,會獲得每三個月的推送,對于一些重大更新我們會進行評估,是否是重要更新,是否要升級,升級計劃是什么。

    應急支撐體系是IT企業的日常需求,在Java使用中只要上了規模都會有無法預期的問題。這里我們提供了7×24小時的專屬釘釘或者電話支持,響應時間保證到在業務不可用情況下10分鐘響應,業務一般的問題在一小時可以獲得響應,主要城市可以兩小時內得到到達現場的服務。

    我們結合之前的案例來看,用戶通過我們的服務能獲得怎樣的體驗。首先用戶發現并報告了問題,由于北京是主要城市,兩小時內可以到達現場。隨后我們幫助用戶保存現場,分析問題,定位問題,最后交付服務。

    代碼空間滿導致代碼部分解釋執行,從而性能變差,但代碼空間滿依舊不是根因。一步步深入定位,分析出原因: 因為用戶從低版本JDK升上來,低版本JDK的代碼回收功能是有問題的,因此用戶禁用了代碼空間的回收功能。隨著應用持續運行,編譯代碼越來越多,如果開啟了代碼空間的回收,失效代碼是可以被Java虛擬機回收的。但是用戶關閉了代碼空間回收,最終導致代碼空間滿。Hotspot虛擬機在代碼空間滿時策略是禁止JIT編譯。

    確認問題后幫助用戶在少量機器上驗證,確認修復完成后交付服務,書面給與用戶確認。

    原文鏈接

    本文為阿里云原創內容,未經允許不得轉載。?

    總結

    以上是生活随笔為你收集整理的如何进行基于Anolis OS的企业级Java应用规模化实践?|龙蜥技术的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。