中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

KonaJDK賦能云上Java新生態分析

發布時間:2021-11-24 14:58:37 來源:億速云 閱讀:208 作者:iii 欄目:云計算

這篇文章主要介紹“KonaJDK賦能云上Java新生態分析”,在日常操作中,相信很多人在KonaJDK賦能云上Java新生態分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”KonaJDK賦能云上Java新生態分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、自研KonaJDK對于云Java生態的意義

JDK作為Java應用的基礎設施,在云Java生態上的重要性不言而喻。KonaJDK作為Tencent自研JDK, 已經平穩支撐于騰訊云微服務,消息中間件,大數據等核心業務,同時在信創等場景上作為Java業務的基礎支撐組件,填補了騰訊云信創場景下JDK組件的空白。本文將主要從KonaJDK在信創云環境支撐,KonaJDK支持騰訊云產品的能力拓展與定制化以及KonaJDK在大數據場景的優化實踐幾個方面,介紹KonaJDK對于騰訊云Java業務的支撐與優化  。

二、KonaJDK 信創環境支撐

信創云環境中Java業務要求JDK能夠穩定高效的支撐國產CPU運行環境。其中主要的CPU指令集為aarch74。通過我們調研,目前JDK8在aarch74指令集的情況如下:
  • OpenJDK
OpenJDK8 在主線分支中并沒有aarch74指令集的支持,網上能夠找到的開源版本,都是開源社區幾個主要參與者貢獻的。對于騰訊云業務來說,開源版本并沒有在生產系統中得到驗證,也沒有專門的人力進行代碼的維護與更新。所以在可維護性,安全性及穩定性上都存在風險。
  • OracleJDK
OracleJDK 8 之中包含AARCH64支持。但考慮到成本,以及OracleJDK 8代碼未開源,問題定位等方面的難度。同時,我們在特定場景下也發現OracleJDK頻繁的ForceSafepoint可能對業務穩定性存在影響,所以我們也沒有考慮使用OracleJDK8作為AARCH64的首先JDK。(具體可以參見文章:  " tab="innerlink" data-linktype="2" ><不要再亂下載JDK了:Elasticsearch在國產化ARM環境下的首個大坑>)
經過一系列的分析,我們最終選定KonaJDK作為騰訊云信創方案的首選JDK,主要原因如下:
KonaJDK 的AARCH64版本基于OpenJDK社區最受歡迎的IcedTea 項目,之后經過KonaJDK大量的研發,適配與修正。在穩定性方面經過了大規模生產環境的測試與驗證,并且通過了專有云等產品的質量驗收。同時,騰訊內部TencentJDK協同團隊可以持續為KonaJDK提供版本維護與技術支持。
總而言之,騰訊KonaJDK能夠在保證正確性穩定性的同時,提供JDK的維護,技術支持,優化以及定制化功能等方面的支持,更適合信創環境下云業務的場景。

 三、KonaJDK 支持云產品能力拓展與定制化

除了穩定支撐信創云Java業務外, KonaJDK在其可定制性方面也為云業務提供了多方面的支持。我們主要通過以下幾方面進行說明:

1. 微服務產品中JVM監控診斷能力提升

根據統計,大約60%的云業務開發者使用Java語言。以騰訊云微服務管理平臺(TSF)為例,其業務支撐環境,以及用戶部署的微服務,主要是使用Java spring cloud框架實現的,即這些業務都是運行在JDK環境中的。但在實際使用過程中,用戶更加關注的是業務的功能與實現,很難感受到JDK在其中的作用。作為對比,下圖是云業務開發者眼中的微服務,用戶更加關注微服務每個模塊的功能,以及微服務業務的功能。
KonaJDK賦能云上Java新生態分析
下圖是JVM/JDK研發者眼中的微服務:  
KonaJDK賦能云上Java新生態分析
可以看到,基本上每一個微服務功能節點都是一個JVM實例。因此如何通過JVM側信息幫助開發者了解自己的云業務運行情況,是云支撐平臺類產品的關鍵功能。
目前,騰訊云微服務產品TSF,消息中間件產品支撐環境已經使用KonaJDK作為業務支撐組件。除了支持標準JMXbean,兼容開源JVM相關profiler來提供微服務基本JVM監控信息外, KonaJDK還從以下方面進行相關提升(部分功能研發上線中)
  • JFR (Java Flight Recorder)
JVM內置輕量級Profiler,可收集Java應用在運行過程中的診斷及性能數據,back port自OpenJDK11。如果使用的是默認的配置,理論上JFR開銷是小于2%的,因此必要情況下可用在現網收集數據。KonaJDK中針對JFR做了大量的問題修復與能力提升,目前可以在運行時動態打開、關閉。采集到的數據在內部可以通過KonaProfiler 進行分析
  • KonaProfiler
KonaJDK團隊研發的一款線上綜合性JVM性能分析工具,目前支持JFR數據文件的分析,heap dump數據分析,jstack數據分析,火焰圖等多種功能。
例 – KonaProfiler支持多種類型火焰圖分析
             KonaJDK賦能云上Java新生態分析              
KonaJDK賦能云上Java新生態分析
例 – KonaProfiler對于JFR數據分析給出分析建議
KonaJDK賦能云上Java新生態分析
結合以上能力,在KonaJDK的加持下,騰訊云微服務平臺可以為用戶提供JVM監控,線上診斷等一系列能力,滿足用戶在性能分析及調優方面的需求。

2. 國密算法的支持

隨著國密算法等商密算法國家標準的推出,云上客戶對于Java版本的國密算法需求越來越多。經過調研與客戶反饋,我們發現目前在國密算法的使用上,主要存在以下幾類問題:
  • 使用成本高
客戶在一些場景上需要國密算法, 但是受各種原因限制,客戶不可能也不愿意自身研發國密算法。
目前網上國密算法的實現參差不齊,以下是我們在主流搜索引擎上搜索“國密算法 Java實現”。
KonaJDK賦能云上Java新生態分析
從結果可以看到大部分內容都是個人愛好者的實現,或者使用開源項目。這些項目每種實現都需要學習API的使用,并且如何選擇合適的項目,也是客戶面臨的成本問題。
  • 可靠性存疑
另外一點在于可靠性上, 在一些場景上,對于國密算法的要求處理功能正確與性能優秀以外,還需要可靠性保證。例如是否符合國標,是否經過認證等等。
KonaJDK團隊經過調研,實際上在Java密碼算法的使用上,最為普及,也最為易用的實現就是Java Cryptography Architecture(JCA), 使用JCA定義的Cipher類與 API,可以高效,便捷的使用JDK中實現了JCA的密碼算法。
KonaJDK團隊經過與內部密碼專家團隊的合作,共同開發了基于JCA的國密算法SM2, SM3,SM4支持,其主要具備以下優點:
  • 簡單易用, 國密算法使用符合標準JCA調用流程,開發人員在掌握JCA的基礎上,只需要簡單學習幾個基本要點就可以順利使用。
  • 安全可靠,由騰訊內部專業密碼專家團隊開發維護,國密算法符合國標。
  • 易于遷移,從其他JCA密碼算法遷移到SM算法只需要簡單的替換即可,如下圖為從RSA切換為SM2 算法的代碼改動,最少僅需3行代碼變動即可完成。
   KonaJDK賦能云上Java新生態分析
通過國密算法, 我們可以看到KonaJDK 提供的定制化能力與技術支持能力能夠進一步提升云上產品的能力,方便客戶,提高產品價值

3. 工具優化,大堆場景下Jmap掃描速度的提升,回饋社區

提到Java堆分析,相信很多java程序員最先想起的就是Jmap。作為JDK內置的堆內存分析工具,Jmap可以實現jvm堆內存的統計與dump功能。在實際使用中,我們發現在大數據等大堆場景下,jmap的一次使用要消耗很長時間。而由于jmap在運行過程中需要暫停Java業務線程,所以可能會出現一次jmap 發生導致Java進程無響應,從而主備結點切換,最終造成業務系統抖動。
經過問題的分析, 我們在KonaJDK中引入了Jmap的并行堆掃描,如圖所示:
KonaJDK賦能云上Java新生態分析
通過并行堆掃描與thread local 數據存儲,我們將Jmap histo工作時間提升了6-10倍,緩解了業務抖動問題。
同時作為openJDK社區的參與者,我們將并行堆掃描這個特性積極貢獻給了OpenJDK社區,目前針對G1, ZGC, shenandoahGC的patch已經合入jdk16主線,而針對ParallelScavenge堆的patch也已經經過多輪review,正待合入。

 四、Kona JDK 性能保證 - 大數據線上優化實踐

除了以上幾方面,騰訊KonaJDK專家團隊針對大數據業務進行了性能的專項提升。例如,通過GC調度等優化,大幅降低生產環境CPU利用率; 優化GC物理內存回收算法,以減少進程物理內存占用; G1 和ZGC等GC算法持續優化以提升穩定性和減少毛刺等。經過大數據生產環境大規模實際部署驗證,和社區版本對比,Kona JDK在cpu使用率和物理內存使用等方面都有明顯優勢。

到此,關于“KonaJDK賦能云上Java新生態分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

祥云县| 达州市| 平度市| 中牟县| 区。| 莱芜市| 逊克县| 青河县| 田东县| 双城市| 噶尔县| 金门县| 古蔺县| 车致| 白银市| 盐池县| 图木舒克市| 涿鹿县| 肇东市| 夏津县| 漯河市| 鹤峰县| 隆安县| 梧州市| 公安县| 万年县| 来安县| 稷山县| 临汾市| 米脂县| 丽江市| 乐平市| 大余县| 哈尔滨市| 呼图壁县| 楚雄市| 乾安县| 沙河市| 云浮市| 调兵山市| 富宁县|