KonaJDK赋能云上Java新生态分析
发表于:2025-02-10 作者:千家信息网编辑
千家信息网最后更新 2025年02月10日,这篇文章主要介绍"KonaJDK赋能云上Java新生态分析",在日常操作中,相信很多人在KonaJDK赋能云上Java新生态分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年02月10日KonaJDK赋能云上Java新生态分析JDK作为Java应用的基础设施,在云Java生态上的重要性不言而喻。KonaJDK作为Tencent自研JDK, 已经平稳支撑于腾讯云微服务,消息中间件,大数据等核心业务,同时在信创等场景上作为Java业务的基础支撑组件,填补了腾讯云信创场景下JDK组件的空白。本文将主要从KonaJDK在信创云环境支撑,KonaJDK支持腾讯云产品的能力拓展与定制化以及KonaJDK在大数据场景的优化实践几个方面,介绍KonaJDK对于腾讯云Java业务的支撑与优化 。 信创云环境中Java业务要求JDK能够稳定高效的支撑国产CPU运行环境。其中主要的CPU指令集为aarch74。通过我们调研,目前JDK8在aarch74指令集的情况如下: OpenJDK8 在主线分支中并没有aarch74指令集的支持,网上能够找到的开源版本,都是开源社区几个主要参与者贡献的。对于腾讯云业务来说,开源版本并没有在生产系统中得到验证,也没有专门的人力进行代码的维护与更新。所以在可维护性,安全性及稳定性上都存在风险。 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的维护,技术支持,优化以及定制化功能等方面的支持,更适合信创环境下云业务的场景。 除了稳定支撑信创云Java业务外, KonaJDK在其可定制性方面也为云业务提供了多方面的支持。我们主要通过以下几方面进行说明: 根据统计,大约60%的云业务开发者使用Java语言。以腾讯云微服务管理平台(TSF)为例,其业务支撑环境,以及用户部署的微服务,主要是使用Java spring cloud框架实现的,即这些业务都是运行在JDK环境中的。但在实际使用过程中,用户更加关注的是业务的功能与实现,很难感受到JDK在其中的作用。作为对比,下图是云业务开发者眼中的微服务,用户更加关注微服务每个模块的功能,以及微服务业务的功能。 下图是JVM/JDK研发者眼中的微服务:
可以看到,基本上每一个微服务功能节点都是一个JVM实例。因此如何通过JVM侧信息帮助开发者了解自己的云业务运行情况,是云支撑平台类产品的关键功能。 目前,腾讯云微服务产品TSF,消息中间件产品支撑环境已经使用KonaJDK作为业务支撑组件。除了支持标准JMXbean,兼容开源JVM相关profiler来提供微服务基本JVM监控信息外, KonaJDK还从以下方面进行相关提升(部分功能研发上线中) JVM内置轻量级Profiler,可收集Java应用在运行过程中的诊断及性能数据,back port自OpenJDK11。如果使用的是默认的配置,理论上JFR开销是小于2%的,因此必要情况下可用在现网收集数据。KonaJDK中针对JFR做了大量的问题修复与能力提升,目前可以在运行时动态打开、关闭。采集到的数据在内部可以通过KonaProfiler 进行分析 KonaJDK团队研发的一款线上综合性JVM性能分析工具,目前支持JFR数据文件的分析,heap dump数据分析,jstack数据分析,火焰图等多种功能。 例 - KonaProfiler支持多种类型火焰图分析 例 - KonaProfiler对于JFR数据分析给出分析建议 结合以上能力,在KonaJDK的加持下,腾讯云微服务平台可以为用户提供JVM监控,线上诊断等一系列能力,满足用户在性能分析及调优方面的需求。 随着国密算法等商密算法国家标准的推出,云上客户对于Java版本的国密算法需求越来越多。经过调研与客户反馈,我们发现目前在国密算法的使用上,主要存在以下几类问题: 客户在一些场景上需要国密算法, 但是受各种原因限制,客户不可能也不愿意自身研发国密算法。 目前网上国密算法的实现参差不齐,以下是我们在主流搜索引擎上搜索"国密算法 Java实现"。 从结果可以看到大部分内容都是个人爱好者的实现,或者使用开源项目。这些项目每种实现都需要学习API的使用,并且如何选择合适的项目,也是客户面临的成本问题。 另外一点在于可靠性上, 在一些场景上,对于国密算法的要求处理功能正确与性能优秀以外,还需要可靠性保证。例如是否符合国标,是否经过认证等等。 KonaJDK团队经过调研,实际上在Java密码算法的使用上,最为普及,也最为易用的实现就是Java Cryptography Architecture(JCA), 使用JCA定义的Cipher类与 API,可以高效,便捷的使用JDK中实现了JCA的密码算法。 KonaJDK团队经过与内部密码专家团队的合作,共同开发了基于JCA的国密算法SM2, SM3,SM4支持,其主要具备以下优点: 通过国密算法, 我们可以看到KonaJDK 提供的定制化能力与技术支持能力能够进一步提升云上产品的能力,方便客户,提高产品价值 提到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,正待合入。 除了以上几方面,腾讯KonaJDK专家团队针对大数据业务进行了性能的专项提升。例如,通过GC调度等优化,大幅降低生产环境CPU利用率; 优化GC物理内存回收算法,以减少进程物理内存占用; G1 和ZGC等GC算法持续优化以提升稳定性和减少毛刺等。经过大数据生产环境大规模实际部署验证,和社区版本对比,Kona JDK在cpu使用率和物理内存使用等方面都有明显优势。
这篇文章主要介绍"KonaJDK赋能云上Java新生态分析",在日常操作中,相信很多人在KonaJDK赋能云上Java新生态分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"KonaJDK赋能云上Java新生态分析"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、自研KonaJDK对于云Java生态的意义
二、KonaJDK 信创环境支撑
OpenJDK
OracleJDK
三、KonaJDK 支持云产品能力拓展与定制化
1. 微服务产品中JVM监控诊断能力提升
JFR (Java Flight Recorder)
KonaProfiler
2. 国密算法的支持
使用成本高
可靠性存疑
简单易用, 国密算法使用符合标准JCA调用流程,开发人员在掌握JCA的基础上,只需要简单学习几个基本要点就可以顺利使用。 安全可靠,由腾讯内部专业密码专家团队开发维护,国密算法符合国标。 易于迁移,从其他JCA密码算法迁移到SM算法只需要简单的替换即可,如下图为从RSA切换为SM2 算法的代码改动,最少仅需3行代码变动即可完成。
3. 工具优化,大堆场景下Jmap扫描速度的提升,回馈社区
四、Kona JDK 性能保证 - 大数据线上优化实践
到此,关于"KonaJDK赋能云上Java新生态分析"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
业务
算法
分析
数据
支持
腾讯
服务
环境
功能
方面
产品
场景
能力
团队
问题
生态
客户
性能
版本
社区
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
长沙手机app软件开发外包
软件开发图片大全
海曙软件开发工具
醉逍遥为什么不能连接服务器
网络安全隶属于什么
塞翁失马翻译软件开发
湖南软件开发技术
开心消消乐服务器排名
网易我的世界该服务器非常受欢迎
安界网络安全图片
服务器托管 防火墙
网络安全必须是计算机专业吗
ipfs数据存储服务器如何建立
双服务器热备
计算机数据库技术考什么
英雄联盟在云贵川的服务器
互联网第三次科技革命
阿里云网络安全架构
过的服务器电
数据库技术设计与应用实例
数据库周亮
醉逍遥为什么不能连接服务器
邯郸嵌入式软件开发定做
安界网络安全图片
电脑如何租服务器
我的世界非常安全的服务器
如何制作私人游戏服务器
连数据库出现列不属于DCB
过的服务器电
网络安全标记由什么产生