Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >KonaJDK赋能云上Java新生态

KonaJDK赋能云上Java新生态

作者头像
腾讯云中间件团队
发布于 2021-03-24 07:34:01
发布于 2021-03-24 07:34:01
1.1K0
举报

导语:本文将主要从KonaJDK在信创云环境支撑,KonaJDK支持腾讯云产品的能力拓展与定制化以及KonaJDK在大数据场景的优化实践几个方面,介绍KonaJDK对于腾讯云Java业务的支撑与优化。

一、自研KonaJDK对于云Java生态的意义

JDK作为Java应用的基础设施,在云Java生态上的重要性不言而喻。KonaJDK作为Tencent自研JDK, 已经平稳支撑于腾讯云微服务,消息中间件,大数据等核心业务,同时在信创等场景上作为Java业务的基础支撑组件,填补了腾讯云信创场景下JDK组件的空白。本文将主要从KonaJDK在信创云环境支撑,KonaJDK支持腾讯云产品的能力拓展与定制化以及KonaJDK在大数据场景的优化实践几个方面,介绍KonaJDK对于腾讯云Java业务的支撑与优化。

二、KonaJDK 信创环境支撑

信创云环境中Java业务要求JDK能够稳定高效的支撑国产CPU运行环境。其中主要的CPU指令集为aarch64。通过我们调研,目前JDK8在aarch64指令集的情况如下:

  • OpenJDK

OpenJDK8 在主线分支中并没有aarch64指令集的支持,网上能够找到的开源版本,都是开源社区几个主要参与者贡献的。对于腾讯云业务来说,开源版本并没有在生产系统中得到验证,也没有专门的人力进行代码的维护与更新。所以在可维护性,安全性及稳定性上都存在风险。

  • OracleJDK

OracleJDK 8 之中包含AARCH64支持。但考虑到成本,以及OracleJDK 8代码未开源,问题定位等方面的难度。同时,我们在特定场景下也发现OracleJDK频繁的ForceSafepoint可能对业务稳定性存在影响,所以我们也没有考虑使用OracleJDK8作为AARCH64的首先JDK。(具体可以参见文章: <不要再乱下载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在其中的作用。作为对比,下图是云业务开发者眼中的微服务,用户更加关注微服务每个模块的功能,以及微服务业务的功能。

下图是JVM/JDK研发者眼中的微服务:

可以看到,基本上每一个微服务功能节点都是一个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支持多种类型火焰图分析

例 – KonaProfiler对于JFR数据分析给出分析建议

结合以上能力,在KonaJDK的加持下,腾讯云微服务平台可以为用户提供JVM监控,线上诊断等一系列能力,满足用户在性能分析及调优方面的需求。

2. 国密算法的支持

随着国密算法等商密算法国家标准的推出,云上客户对于Java版本的国密算法需求越来越多。经过调研与客户反馈,我们发现目前在国密算法的使用上,主要存在以下几类问题:

  • 使用成本高

客户在一些场景上需要国密算法, 但是受各种原因限制,客户不可能也不愿意自身研发国密算法。

目前网上国密算法的实现参差不齐,以下是我们在主流搜索引擎上搜索“国密算法 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 提供的定制化能力与技术支持能力能够进一步提升云上产品的能力,方便客户,提高产品价值

3. 工具优化,大堆场景下Jmap扫描速度的提升,回馈社区

提到Java堆分析,相信很多java程序员最先想起的就是Jmap。作为JDK内置的堆内存分析工具,Jmap可以实现jvm堆内存的统计与dump功能。在实际使用中,我们发现在大数据等大堆场景下,jmap的一次使用要消耗很长时间。而由于jmap在运行过程中需要暂停Java业务线程,所以可能会出现一次jmap 发生导致Java进程无响应,从而主备结点切换,最终造成业务系统抖动。

经过问题的分析, 我们在KonaJDK中引入了Jmap的并行堆扫描,如图所示:

通过并行堆扫描与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使用率和物理内存使用等方面都有明显优势。

五、总结

在过去的1年中,KonaJDK逐步崭露头角,帮助云业务在产品能力,稳定性与性能等方方面面进行了整体的提升。作为OpenJDK开源社区的一员,konaJDK团队积极参与社区,贡献社区,在刚刚发布的JDK15中,腾讯成为国内厂商历史首次Notable贡献者,全球贡献第五。

图 – Tencent在JDK15中全球贡献第五

在未来,我们会更加努力,让KonaJDK更好的服务于腾讯云,更好的服务于云上Java客户,在信创支持、稳定性、性能等方面提升云产品的价值。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云中间件 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
KonaJDK 8 新版本更新,国密算法轻松用
导读 | TencentKona 是腾讯开源的可立即投入生产的 OpenJDK 发行版,在主流 OpenJDK8 的基础上进行了针对性的开发和优化。本次 TencentKona 8 版本更新到 8.0.4, 在同步到社区版本 8u272 的基础上,新增了哪些激动人心的特性?本文将为一一介绍。文章作者:臧琳,腾讯云中间件 JVM 工程师。 一、国密SM2/SM3/SM4算法支持 随着国密算法等商密算法国家标准的推出,云上客户对于 Java 版本的国密算法需求越来越多。KonaJDK8 内置了国密算法的
腾讯云开发者
2021/03/08
1.7K0
KonaJDK 助力微服务国密算法使用特性一览
导读 本次 TencentKona 8 版本更新到 8.0.4, 在同步到社区版本 8u272 的基础上,还有哪些新的特性呢?本文为您一一介绍: Update to jdk8u272 TencentSMProvider for SM2/SM3/SM4 support Parallel Full GC for G1 Parallel Heap Inspection for G1 and ParallelScavenge Heap Other performance enhancement Bug fix
腾讯技术工程官方号
2021/03/09
8410
2020年腾讯KonaJDK开源贡献总结
导语:在2020年发布的 JDK15 中,腾讯成为国内厂商历史首位 Notable 贡献者,全球贡献第五。 时光飞逝,一转眼,2020年已经结束,自2019年11月KonaJDK开源,也已超过一年。在过去的这一年里,KonaJDK不断提升,锐意进取,为腾讯内部及外部云上客户提供了稳定的Java运行环境。关于KonaJDK服务腾讯及云业务,我们已经在《KonaJDK 赋能云上 Java 新生态》一文中做了表述。与此同时,2020年我们也积极参与了OpenJDK开源社区贡献。2021新年伊始,我们以腾讯云JD
腾讯大数据
2021/01/19
7800
开源项目介绍|KonaJDK - 腾讯JDK发行版
2022腾讯犀牛鸟开源人才培养计划 开源项目介绍 滑至文末报名参与开源人才培养计划 提交 KonaJDK 项目Proposal KonaJDK 项目介绍 腾讯KonaJDK是OpenJDK的发行版,并且针对大数据,机器学习和云计算等场景进行了独特的优化,在高性能及安全性方面多有建树。腾讯KonaJDK团队拥有多位OpenJDK Reviewer,Committer和Author,在国内JDK团队中首屈一指。而OpenJDK开源社区活跃且成熟,它的协作模式也是开源项目中的典范,无论对于初识的爱好者,还是长期的
腾讯开源
2022/07/01
1.7K0
开源项目介绍|KonaJDK - 腾讯JDK发行版
玩转腾讯Kona JDK的N种姿势
腾讯Kona JDK(后文简称为Kona)是腾讯的OpenJDK发行版。它基于腾讯内外部的海量业务,针对大数据,云计算,机器学习和安全等多个领域进行了广泛扩展与深度优化。该发行版支持OpenJDK的全部长期支持(LTS)版本,包括8,11,17和21。它还支持主流的操作系统平台,包括Linux x64,Linux aarch64,Windows x64,macOS x64和macOS aarch64。获悉更多信息,请访问Kona的GitHub主页:https://tencent.github.io/konajdk
腾讯开源
2025/05/17
1260
玩转腾讯Kona JDK的N种姿势
微服务云原生等场景,腾讯 Kona JDK 正式开源
Tencent Kona 是基于 OpenJDK8,由腾讯专业技术团队提供技术维护、优化及安全保障的 JDK 产品。腾讯的 Java 应用场景丰富,结合微服务、云原生应用、大数据等实际应用场景进行开发,并于11月5日正式发布了优化后的JDK——Tencent Kona。Kona可为上述场景提供最优的 Java 生产环境及解决方案,并为开发者开发的 Java 应用提供平滑的迁移。目前,Kona为腾讯微服务平台 TSF、 腾讯 TBDS 大数据套件、腾讯 TI 智能钛机器学习平台等提供了稳定保障。 Ko
腾讯开源
2019/11/08
1.9K0
微服务云原生等场景,腾讯 Kona JDK 正式开源
头条!Tencent Kona JDK11 正式开源,提升 50% 峰值性能!
导读 Tencent Kona JDK11正式开源,腾讯云与大数据团队将持续贡献Java生态发展。 Github 开源地址: https://github.com/Tencent/TencentKona-11 概述 3月8日,腾讯宣布将 Tencent Kona JDK11 正式开源,向社区分享经过内部超大规模生产环境验证的定制 JDK,该版本在启动性能、峰值性能以及事物处理能力方面,相对于前一版本 Kona JDK8 都有了综合性提升,沉淀了腾讯云与大数据团队在大数据/机器学习、云原生场景
腾讯云中间件团队
2021/03/24
1K0
腾讯蝉联JDK17贡献国内第一,自研Kona JDK两大新版本正式开源
导读 / Introduction 2021年9月14日,Oracle 正式对外发布新的长期支持版本JDK17。据Oracle官方公告,腾讯Kona JDK再次蝉联JDK17中国企业贡献度排名第一,全球企业贡献度排名第四。在积极参与社区贡献的同时,腾讯继Tencent Kona JDK8、Tencent Kona JDK11开源之后,再次开源Tencent Kona JDK17 以及Tencent Kona JDK11 向量计算版。 积极社区贡献 KonaJDK 9月14日,JDK17正式对外发布。据
腾讯大数据
2021/11/05
2.3K1
腾讯蝉联JDK17贡献国内第一,自研Kona JDK两大新版本正式开源
导读 / Introduction 2021年9月14日,Oracle 正式对外发布新的长期支持版本JDK17。据Oracle官方公告,腾讯Kona JDK再次蝉联JDK17中国企业贡献度排名第一,全球企业贡献度排名第四。在积极参与社区贡献的同时,腾讯继Tencent Kona JDK8、Tencent Kona JDK11开源之后,再次开源Tencent Kona JDK17 以及Tencent Kona JDK11 向量计算版。 积极社区贡献 KonaJDK 9月14日,JDK17正式对外发布。据
腾讯开源
2021/11/10
1.2K0
Tencent Kona JDK11正式开源,腾讯大数据将持续贡献Java生态发展
3月8日,腾讯宣布将Tencent KonaJDK11正式开源,向社区分享经过内部超大规模生产环境验证的定制JDK,该版本在启动性能、峰值性能以及事物处理能力方面,相对于前一版本Kona JDK8都有了综合性提升,沉淀了腾讯大数据团队在大数据/机器学习、云原生场景下的深度优化,并且通过了JCK验证,确保充分的Java SE标准兼容。 除了在开源社区开放使用外,TencentKona JDK11也会在腾讯云上免费提供,为云上用户的Java应用注入高效动能。另一方面,通过自身产品采用Kona JDK,腾讯云
腾讯开源
2021/03/09
1.7K0
大数据与云计算的新引擎 – Kona JDK 11揭秘
丨导语 时间过得真快,JDK 11已经发布近两年了,大家从最开始看到ZGC、JFR等特性的眼前一亮直到今天,似乎并没有见到广泛进入生产,Java开发者的普遍疑问是: ● JDK 11有什么突出生产价值?到底有没有开箱即用的性能提升或者功能收益? ● JDK半年即一个主版本,如何充分利用前沿版本新特性,又能避免令人眼花缭乱的Java版本变化? 腾讯JDK团队针对大数据/机器学习和云计算等业务的前沿需求,正在探索新的长期支持版本Kona JDK 11,本文将对其中部分实践进行介绍,希望从生产经验的角度为大家
腾讯大数据
2020/05/13
1.7K0
毕昇 JDK:“传奇再现”华为如何打造 ARM 上最好用的 JDK?
不知道大家是否听说过亦或是使用过毕昇 JDK,是否从事 Java 工作?是否从事 JVM 底层开发?绝大多数 Java 开发者使用的都是 Oracle 的 JDK 或者是 OpenJDK,本文我们将介绍华为的毕昇 JDK 以及我们所做的相关技术优化,希望能在除上述两者之外提供给大家新的选择。
白鹿第一帅
2021/06/21
1.5K0
毕昇 JDK:“传奇再现”华为如何打造 ARM 上最好用的 JDK?
Oracle 慌了!华为开始对 JDK 下手了!
近日有开发者在华为 openEuler操作系统源码中发现了华为的 OpenJDK 发行版,名为“毕昇 JDK 8(bishengjdk-8)”。
逆锋起笔
2020/11/30
7440
Oracle 慌了!华为开始对 JDK 下手了!
给Arm生态添把火,腾讯Kona JDK Arm架构优化实践
前言 Arm架构以其兼具性能与功耗的特点,在智能终端以及嵌入式领域得到了广泛的使用,不断扩大其影响力。而在PC端以及数据中心,之前往往是x86架构在其中发挥着主要的作用。最近,随着人工智能、云计算等技术的兴起,5G网络的不断成熟,万物互联的时代是的应用的需求越来越多样化,使得对于芯片架构的需求也越来越多样化。 Arm架构在提供可靠性能的基础上,低功耗、低开销的特点使得它被越来越广泛的应用到数据中心和云计算中,成为其中必不可缺少的重要组成部分。亚马逊投入大量精力自研Arm服务器,并应用到AWS服务中,最
腾讯技术工程官方号
2021/08/17
6810
京东JDK的探索与研究 (一)
本文旨在概述京东在JDK方向上的尝试与探索,以及京东JDK项目背景,基本特性以及未来的工作方向。 对于JDK特性的技术讨论,实现细节及效果,将在后续系列文章中深入讨论。
京东技术
2019/03/14
1.7K0
京东JDK的探索与研究 (一)
国产 JDK 来了! 华为开源 一款高性能 JDK!
开发者技术前线报道 近日,华为 openEuler操作系统源码中发现了华为的 OpenJDK 发行版,名为“毕昇 JDK 8(bishengjdk-8)”。 毕昇JDK是华为内部OpenJDK定制版Huawei JDK的开源版本,是一个高性能、可用于生产环境的OpenJDK发行版。Huawei JDK运行在华为内部500多个产品上,积累了大量使用场景和java开发者反馈的问题和诉求,解决了业务实际运行中遇到的多个问题,并在ARM架构上进行了性能优化,毕昇JDK运行在大数据等场景下可以获得更好的性能。毕昇JDK 8与Java SE标准兼容,目前仅支持Linux/AArch64平台。毕昇JDK同时是OpenJDK的下游,现在和未来也会持续稳定为OpenJDK社区做出贡献。毕昇JDK同时提供tar压缩包格式和yum源两种安装方式。
开发者技术前线
2020/11/23
4K0
国产 JDK 来了! 华为开源 一款高性能 JDK!
腾讯Kona国密套件:从基础算法到安全协议
腾讯Kona国密套件(Tencent Kona SM Suite)基于JDK的标准Service Provider Interface(SPI)实现了从基础算法簇,到公钥基础设施(PKI),再到安全通信协议的全链路国密特性。该套件已在GitHub上开源:https://github.com/Tencent/TencentKonaSMSuite(点击阅读原文) 腾讯Kona国密套件包含四个Java Security Provider: KonaCrypto,它是一个Java Cryptography Exte
腾讯大数据
2022/11/30
5.6K0
腾讯Kona国密套件:从基础算法到安全协议
Tencent JDK 国产化CPU架构支持分享
GIAC(GLOBAL INTERNET ARCHITECTURE CONFERENCE)是长期关注互联网技术与架构的高可用架构技术社区和msup推出的,面向架构师、技术负责人及高端技术从业人员的年度技术架构大会,是中国地区规模最大的技术会议之一。 今年的第六届GIAC大会上,在大数据架构进化中的JAVA专题,腾讯高级工程师傅杰博士发表了《Tencent JDK 国产化CPU架构支持分享》的主题演讲。以下为嘉宾演讲实录: 尊敬的各位来宾,大家下午好!很高兴有机会跟大家一起分享Tencent J
腾讯技术工程官方号
2020/08/31
1.7K0
低代码、混沌工程、云原生、数据库……2021年你该了解的技术趋势都在这场大会!
2021年9月10-11日,由稀土掘金开发者社区主办的首届稀土开发者大会将于北京盛大开幕。目前 14 大热门技术专题出品人全部集结完毕,来自各大互联网科技大厂的明星讲师正持续上线,5折购票火热进行中! 本届稀土开发者大会已有 4 位联席主席上线,分别是OceanBase CTO 杨传辉(日照)、奇安信集团副总裁左文建、字节跳动技术副总裁洪定坤、字节跳动技术副总裁杨震原,他们将对大会的内容质量严格把关。 稀土开发者大会集国际化、前瞻性、实践性于一体,是一场性价比极高的综合性技术大会。大会面向开发者社区的新生中
云头条
2022/03/18
1.1K0
腾讯捐赠编译器基础软件,为中国开发者“添了双筷子”
6月11日,在2023开放原子全球开源峰会上,腾讯正式宣布将打磨多年的Java应用操作系统“OpenKona”捐赠给开放原子开源基金会,联合基金会以及数以百万计开发者,共建国产编译器基础软件,推动数字基础设施加速突破。
腾讯QQ大数据
2023/07/27
2090
腾讯捐赠编译器基础软件,为中国开发者“添了双筷子”
推荐阅读
相关推荐
KonaJDK 8 新版本更新,国密算法轻松用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档