久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

KonaJDK賦能云上Java新生態(tài)分析

188次閱讀
沒有評論

共計 3610 個字符,預計需要花費 10 分鐘才能閱讀完成。

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

一、自研 KonaJDK 對于云 Java 生態(tài)的意義 JDK 作為 Java 應用的基礎設施,在云 Java 生態(tài)上的重要性不言而喻。KonaJDK 作為 Tencent 自研 JDK,已經(jīng)平穩(wěn)支撐于騰訊云微服務,消息中間件,大數(shù)據(jù)等核心業(yè)務,同時在信創(chuàng)等場景上作為 Java 業(yè)務的基礎支撐組件,填補了騰訊云信創(chuàng)場景下 JDK 組件的空白。本文將主要從 KonaJDK 在信創(chuàng)云環(huán)境支撐,KonaJDK 支持騰訊云產(chǎn)品的能力拓展與定制化以及 KonaJDK 在大數(shù)據(jù)場景的優(yōu)化實踐幾個方面,介紹 KonaJDK 對于騰訊云 Java 業(yè)務的支撐與優(yōu)化
 。二、KonaJDK 信創(chuàng)環(huán)境支撐信創(chuàng)云環(huán)境中 Java 業(yè)務要求 JDK 能夠穩(wěn)定高效的支撐國產(chǎn) CPU 運行環(huán)境。其中主要的 CPU 指令集為 aarch74。通過我們調(diào)研,目前 JDK8 在 aarch74 指令集的情況如下:OpenJDKOpenJDK8 在主線分支中并沒有 aarch74 指令集的支持,網(wǎng)上能夠找到的開源版本,都是開源社區(qū)幾個主要參與者貢獻的。對于騰訊云業(yè)務來說,開源版本并沒有在生產(chǎn)系統(tǒng)中得到驗證,也沒有專門的人力進行代碼的維護與更新。所以在可維護性,安全性及穩(wěn)定性上都存在風險。OracleJDKOracleJDK 8 之中包含 AARCH64 支持。但考慮到成本,以及 OracleJDK 8 代碼未開源,問題定位等方面的難度。同時,我們在特定場景下也發(fā)現(xiàn) OracleJDK 頻繁的 ForceSafepoint 可能對業(yè)務穩(wěn)定性存在影響,所以我們也沒有考慮使用 OracleJDK8 作為 AARCH64 的首先 JDK。(具體可以參見文章:   tab= innerlink data-linktype= 2 不要再亂下載 JDK 了:Elasticsearch 在國產(chǎn)化 ARM 環(huán)境下的首個大坑)經(jīng)過一系列的分析,我們最終選定 KonaJDK 作為騰訊云信創(chuàng)方案的首選 JDK,主要原因如下:KonaJDK 的 AARCH64 版本基于 OpenJDK 社區(qū)最受歡迎的 IcedTea 項目,之后經(jīng)過 KonaJDK 大量的研發(fā),適配與修正。在穩(wěn)定性方面經(jīng)過了大規(guī)模生產(chǎn)環(huán)境的測試與驗證,并且通過了專有云等產(chǎn)品的質量驗收。同時,騰訊內(nèi)部 TencentJDK 協(xié)同團隊可以持續(xù)為 KonaJDK 提供版本維護與技術支持。總而言之,騰訊 KonaJDK 能夠在保證正確性穩(wěn)定性的同時,提供 JDK 的維護,技術支持,優(yōu)化以及定制化功能等方面的支持,更適合信創(chuàng)環(huán)境下云業(yè)務的場景。  三、KonaJDK 支持云產(chǎn)品能力拓展與定制化除了穩(wěn)定支撐信創(chuàng)云 Java 業(yè)務外,KonaJDK 在其可定制性方面也為云業(yè)務提供了多方面的支持。我們主要通過以下幾方面進行說明:1. 微服務產(chǎn)品中 JVM 監(jiān)控診斷能力提升根據(jù)統(tǒng)計, 大約 60% 的云業(yè)務開發(fā)者使用 Java 語言。以騰訊云微服務管理平臺(TSF)為例,其業(yè)務支撐環(huán)境,以及用戶部署的微服務,主要是使用 Java spring cloud 框架實現(xiàn)的,即這些業(yè)務都是運行在 JDK 環(huán)境中的。但在實際使用過程中,用戶更加關注的是業(yè)務的功能與實現(xiàn),很難感受到 JDK 在其中的作用。作為對比,下圖是云業(yè)務開發(fā)者眼中的微服務,用戶更加關注微服務每個模塊的功能,以及微服務業(yè)務的功能。KonaJDK 賦能云上 Java 新生態(tài)分析
下圖是 JVM/JDK 研發(fā)者眼中的微服務:
 

KonaJDK 賦能云上 Java 新生態(tài)分析
可以看到,基本上每一個微服務功能節(jié)點都是一個 JVM 實例。因此如何通過 JVM 側信息幫助開發(fā)者了解自己的云業(yè)務運行情況,是云支撐平臺類產(chǎn)品的關鍵功能。目前,騰訊云微服務產(chǎn)品 TSF,消息中間件產(chǎn)品支撐環(huán)境已經(jīng)使用 KonaJDK 作為業(yè)務支撐組件。除了支持標準 JMXbean,兼容開源 JVM 相關 profiler 來提供微服務基本 JVM 監(jiān)控信息外,KonaJDK 還從以下方面進行相關提升(部分功能研發(fā)上線中)JFR (Java Flight Recorder)JVM 內(nèi)置輕量級 Profiler,可收集 Java 應用在運行過程中的診斷及性能數(shù)據(jù),back port 自 OpenJDK11。如果使用的是默認的配置,理論上 JFR 開銷是小于 2% 的,因此必要情況下可用在現(xiàn)網(wǎng)收集數(shù)據(jù)。KonaJDK 中針對 JFR 做了大量的問題修復與能力提升,目前可以在運行時動態(tài)打開、關閉。采集到的數(shù)據(jù)在內(nèi)部可以通過 KonaProfiler 進行分析 KonaProfilerKonaJDK 團隊研發(fā)的一款線上綜合性 JVM 性能分析工具,目前支持 JFR 數(shù)據(jù)文件的分析,heap dump 數(shù)據(jù)分析,jstack 數(shù)據(jù)分析,火焰圖等多種功能。例 – KonaProfiler 支持多種類型火焰圖分析            
 KonaJDK 賦能云上 Java 新生態(tài)分析
           KonaJDK 賦能云上 Java 新生態(tài)分析
例 – KonaProfiler 對于 JFR 數(shù)據(jù)分析給出分析建議 KonaJDK 賦能云上 Java 新生態(tài)分析
結合以上能力,在 KonaJDK 的加持下,騰訊云微服務平臺可以為用戶提供 JVM 監(jiān)控,線上診斷等一系列能力,滿足用戶在性能分析及調(diào)優(yōu)方面的需求。2. 國密算法的支持隨著國密算法等商密算法國家標準的推出,云上客戶對于 Java 版本的國密算法需求越來越多。經(jīng)過調(diào)研與客戶反饋,我們發(fā)現(xiàn)目前在國密算法的使用上,主要存在以下幾類問題:使用成本高客戶在一些場景上需要國密算法,但是受各種原因限制,客戶不可能也不愿意自身研發(fā)國密算法。目前網(wǎng)上國密算法的實現(xiàn)參差不齊,以下是我們在主流搜索引擎上搜索“國密算法 Java 實現(xiàn)”。KonaJDK 賦能云上 Java 新生態(tài)分析
從結果可以看到大部分內(nèi)容都是個人愛好者的實現(xiàn),或者使用開源項目。這些項目每種實現(xiàn)都需要學習 API 的使用,并且如何選擇合適的項目,也是客戶面臨的成本問題。可靠性存疑另外一點在于可靠性上,在一些場景上,對于國密算法的要求處理功能正確與性能優(yōu)秀以外,還需要可靠性保證。例如是否符合國標,是否經(jīng)過認證等等。KonaJDK 團隊經(jīng)過調(diào)研,實際上在 Java 密碼算法的使用上,最為普及,也最為易用的實現(xiàn)就是 Java Cryptography Architecture(JCA), 使用 JCA 定義的 Cipher 類與 API,可以高效,便捷的使用 JDK 中實現(xiàn)了 JCA 的密碼算法。KonaJDK 團隊經(jīng)過與內(nèi)部密碼專家團隊的合作,共同開發(fā)了基于 JCA 的國密算法 SM2,SM3,SM4 支持,其主要具備以下優(yōu)點:簡單易用,國密算法使用符合標準 JCA 調(diào)用流程,開發(fā)人員在掌握 JCA 的基礎上,只需要簡單學習幾個基本要點就可以順利使用。安全可靠,由騰訊內(nèi)部專業(yè)密碼專家團隊開發(fā)維護,國密算法符合國標。易于遷移,從其他 JCA 密碼算法遷移到 SM 算法只需要簡單的替換即可,如下圖為從 RSA 切換為 SM2 算法的代碼改動,最少僅需 3 行代碼變動即可完成。 
 KonaJDK 賦能云上 Java 新生態(tài)分析
通過國密算法,我們可以看到 KonaJDK 提供的定制化能力與技術支持能力能夠進一步提升云上產(chǎn)品的能力,方便客戶,提高產(chǎn)品價值 3. 工具優(yōu)化,大堆場景下 Jmap 掃描速度的提升,回饋社區(qū)提到 Java 堆分析,相信很多 java 程序員最先想起的就是 Jmap。作為 JDK 內(nèi)置的堆內(nèi)存分析工具,Jmap 可以實現(xiàn) jvm 堆內(nèi)存的統(tǒng)計與 dump 功能。在實際使用中,我們發(fā)現(xiàn)在大數(shù)據(jù)等大堆場景下,jmap 的一次使用要消耗很長時間。而由于 jmap 在運行過程中需要暫停 Java 業(yè)務線程,所以可能會出現(xiàn)一次 jmap 發(fā)生導致 Java 進程無響應,從而主備結點切換,最終造成業(yè)務系統(tǒng)抖動。經(jīng)過問題的分析,我們在 KonaJDK 中引入了 Jmap 的并行堆掃描,如圖所示:KonaJDK 賦能云上 Java 新生態(tài)分析
通過并行堆掃描與 thread local 數(shù)據(jù)存儲,我們將 Jmap histo 工作時間提升了 6 -10 倍,緩解了業(yè)務抖動問題。同時作為 openJDK 社區(qū)的參與者,我們將并行堆掃描這個特性積極貢獻給了 OpenJDK 社區(qū),目前針對 G1, ZGC, shenandoahGC 的 patch 已經(jīng)合入 jdk16 主線,而針對 ParallelScavenge 堆的 patch 也已經(jīng)經(jīng)過多輪 review,正待合入。  四、Kona JDK 性能保證 – 大數(shù)據(jù)線上優(yōu)化實踐除了以上幾方面,騰訊 KonaJDK 專家團隊針對大數(shù)據(jù)業(yè)務進行了性能的專項提升。例如,通過 GC 調(diào)度等優(yōu)化,大幅降低生產(chǎn)環(huán)境 CPU 利用率; 優(yōu)化 GC 物理內(nèi)存回收算法,以減少進程物理內(nèi)存占用; G1 和 ZGC 等 GC 算法持續(xù)優(yōu)化以提升穩(wěn)定性和減少毛刺等。經(jīng)過大數(shù)據(jù)生產(chǎn)環(huán)境大規(guī)模實際部署驗證,和社區(qū)版本對比,Kona JDK 在 cpu 使用率和物理內(nèi)存使用等方面都有明顯優(yōu)勢。

到此,關于“KonaJDK 賦能云上 Java 新生態(tài)分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計3610字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 洛隆县| 邹城市| 新民市| 瑞安市| 惠来县| 陵水| 上高县| 蒙山县| 青冈县| 乌审旗| 宁陕县| 蓬安县| 安福县| 定西市| 泰安市| 湖南省| 灌南县| 北京市| 白山市| 闽侯县| 芦山县| 米脂县| 尚志市| 黑龙江省| 驻马店市| 平江县| 富顺县| 孝昌县| 新余市| 浦江县| 太和县| 崇义县| 星子县| 乌审旗| 理塘县| 嘉兴市| 玛多县| 中超| 沁阳市| 曲阳县| 青川县|