备案 控制台
开发者社区 云原生 微服务 文章 正文

MSE结合Dragonwell,让Java Agent更好用

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 微服务引擎MSE面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持Nacos/ZooKeeper/Eureka)、云原生网关(原生支持Ingress/Envoy)、微服务治理(原生支持Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。

背景


随着越来越多的云原生微服务应用的大规模部署,大家对微服务治理的能力

Java Agent技术能够让业务专注于业务逻辑,与此同时,中间件通过Java Agent支持无侵入修改程序行为,提供微服务治理能力。

此外,Java Agent支持通过环境变量的方式注入,中间件、云产品团队可以通过设置环境变量来支持

所以目前基于Java Agent实现的云原生可观测、微服务治理能力被越来越多的采用。比如开源的Skywalking、OpenTelemetry,商业化的阿里云MSE等,都支持Java Agent接入。


问题


我们以MSE微服务demo为例( https://github.com/aliyun/alibabacloud-microservice-demo/tree/master/mse-simple-demo/helm/mse-simple-demo)。

先在一个Kubernetes集群中安装好ack-onepilot,然后部署上述demo。

先可以访问demo中的gateway,验证下可以正常工作:

image.png

您也可以参考MSE的帮助文档( https://mp.weixin.qq.com/s/95WZHL0HhFtzxMlfK-8jkg )体验下全链路灰度等微服务治理能力。

我们登陆容器时,就能看到注入的agent:

image.png

但这样的结果是容器中所有的JVM,都会挂载Agent。

比如java -version:

image.png

比如jstack:

image.png

  1. java/jps/jstack/jcmd等JDK自带的问题排查工具,都会去从环境变量加载Java Agent
  2. 因为Java Agent是在JVM初期加载的,所以Java Agent会先耗费6-7s来加载agent逻辑。
  3. 但作为JDK工具,其实没有任何业务逻辑,不需要微服务治理能力。可以不用加载Java Agent的

我们设想下这个场景:线上应用出现问题了,运维同学要抓现场,上去就想jstack拉一下stacktrace信息。

结果先要加载java agent,不但浪费了CPU和内存,更容易错过问题排查的现场。

但,一边要通过环境变量无侵入注入Java Agent,一边又要不在某些进程内注入。看起来无解了?


MSE携手Dragonwell,让微服务治理更友好


首先,注入Java Agent与否,是JVM确定的。我们只需要修改JVM即可。

在这一点上,Dragonwell团队有着丰富的经验。

其次,我们看下JVM的行为,现有的开源行为如下:

  • JDK相关命令,都会从JAVA_TOOL_OPTIONS加载Java Agent
  • OpenJDK9之后,引入了JDK_JAVA_OPTIONS,这个环境变量只会被java命令使用。jps/jstack等命令不会加载。
  • 有些JDK厂商,会有自己的扩展环境变量, 比如,IBM会读取 IBM_JAVA_OPTIONS,开源后的OpenJ9开始使用 OPENJ9_JAVA_OPTIONS,Oracle/OpenJDK使用_JAVA_OPTIONS。

本来JDK_JAVA_OPTIONS能够很好的满足需求,但作为“你发任你发,我用Java8”的业务开发同学,稳定为先,所以 Java 8 是一定要支持的。

经过和Dragonwell的讨(si)论(bi),确定了如下修改:

  • DRAGONWELL_JAVA_OPTIONS,和 IBM_JAVA_OPTIONS类似,设置某些只用于Dragonwell的Java参数。
  • DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY,和JDK_JAVA_OPTIONS类似。

如果DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY=true,则JAVA_TOOL_OPTIONS只会被java命令加载。jps/jstack不会加载环境变量、不会加载Java Agent。

经过上面的改造,就可以做到只对业务Java进程加载Java Agent。同时不影响jps/jstack等JDK自带的运维命令。


当然,Dragonwell作为开源项目,讨论的整体流程都是在GitHub Issue上完成的,欢迎围观、吃瓜、吐槽:

https://github.com/alibaba/dragonwell8/issues/330#issuecomment-1138083844


最终效果


让我们使用最新的Dragonwell版本,跑一下业务应用,模拟一下运维场景:

image.png

可以看到,业务进程加载了Java Agent(您也可以在MSE微服务治理控制台上看到应用);也避免了Java Agent影响了 java -version等运维脚本。


MSE给你带来更强大的微服务治理能力


阿里云微服务引擎(MSE)通过Java Agent/SDK/Service Mesh等方式,给您带来零接入成本、无侵入的、全生命周期的微服务治理能力。

通过MSE微服务治理,不用改一行代码即可享受全链路灰度、无损上下线、服务测试等微服务治理能力,为您的开发、测试、上线、运维保驾护航。


更多 MSE 特性,欢迎进钉钉群交流

image.png

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
阿里云微服务引擎MSE
目录
相关文章
ftw2fzqaoykua
|
8月前
|
Java Shell 数据安全/隐私保护
部署基于Dragonwell的Java运行环境
本场景介绍如何部署和使用Dragonwell运行环境。
ftw2fzqaoykua
243 0
橘子-青衫
|
5天前
|
监控 Java Maven
揭秘Java Agent技术:解锁Java工具开发的新境界
作为JDK提供的关键机制,Java Agent技术不仅为Java工具的开发者提供了一个强大的框架,还为性能监控、故障诊断和动态代码修改等领域带来了革命性的变革。本文旨在全面解析Java Agent技术的应用场景以及实现方式,特别是静态加载模式和动态加载模式这两种关键模式。
橘子-青衫
52 0
龙蜥社区(OpenAnolis)
|
NoSQL Ubuntu Java
RISC-V 中开发 Java 是一种什么体验? 让 Dragonwell JDK 来回答
由于搭载 RVV-1.0 版本的芯片现阶段实际上很少,所以 Dragonwell 可能是目前唯一能够在硬件上运行 RVV 的 JDK。
龙蜥社区(OpenAnolis)
469 0
授客
|
安全 Java jenkins
Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机
Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机
授客
246 0
中间件小哥
|
存储 弹性计算 安全
Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题
从 Java Agent 报错开始,到 JVM 原理,到 glibc 线程安全,再到 pthread tls,逐步探究 Java Agent 诡异报错。
中间件小哥
207 1
Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题
长梦
|
5天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
长梦
135 2
Cool架构
|
5天前
|
监控 Dubbo 前端开发
快速入门分布式系统与Dubbo+zookeeper Demo
快速入门分布式系统与Dubbo+zookeeper Demo
Cool架构
44 0
Zh.晨光
|
5天前
|
消息中间件 Java 网络安全
JAVAEE分布式技术之Zookeeper的第一次课
JAVAEE分布式技术之Zookeeper的第一次课
Zh.晨光
73 0
hsfxuebao
|
5天前
|
监控 NoSQL Java
Zookeeper分布式锁
Zookeeper分布式锁
hsfxuebao
92 1
老板这功能得加钱
|
3天前
|
前端开发 JavaScript 算法
分布式系统的一致性级别划分及Zookeeper一致性级别分析
分布式系统的一致性级别划分及Zookeeper一致性级别分析
老板这功能得加钱
8 0
云原生

微服务

热门文章

最新文章

  • 1
    微服务(Microservice)那点事
  • 2
    基于微服务和Docker的PaaS云平台架构设计
  • 3
    spring cloud微服务分布式云架构-Spring Cloud Netflix
  • 4
    Spring Cloud Alibaba 新一代微服务解决方案
  • 5
    go微服务框架go-micro深度学习(一) 整体架构介绍
  • 6
    主流微服务注册中心浅析和对比
  • 7
    微服务实践:全栈小团队“洪荒之力”改造阿里服务CRM技术体系
  • 8
    ASP.NET Core微服务之基于Ocelot实现API网关服务(2)
  • 9
    一行代码,保障分布式事务一致性—GTS:微服务架构下分布式事务解决方案
  • 10
    老司机带你玩PPmoney微服务【加强版】
  • 1
    SpringCloud解决feign调用token丢失问题
    151
  • 2
    发票查验,发票采集,免验证码,批量查验,系统集成,代码分享之一
    48
  • 3
    初始化k8s多结点集群
    16
  • 4
    【微服务系列笔记】Nacos
    46
  • 5
    【微服务系列笔记】Eureka
    31
  • 6
    【微服务系列笔记】微服务概述
    45
  • 7
    【微服务系列笔记】负载均衡
    43
  • 8
    【微服务系列笔记】Sentinel入门-微服务保护
    32
  • 9
    【微服务系列笔记】Feign
    39
  • 10
    【Spring系列笔记】定义Bean的方式
    37
  • 相关产品

  • 微服务引擎
    文档详情 产品详情
  • 相关课程

    更多
  • Java面试疑难点解析 - 面试技巧及语言基础
  • Java面试疑难点解析 - Java Web开发
  • Java面试疑难点解析 - 系统架构及项目设计
  • Java编程入门
  • Java面向对象编程
  • Java高级编程
  • 相关电子书

    更多
  • Spring Cloud Alibaba - 重新定义 Java Cloud-Native
  • The Reactive Cloud Native Arch
  • JAVA开发手册1.5.0
  • 相关实验场景

    更多
  • 快速体验智能体API应用
  • 阿里云平台上进行Java程序的编译与运行
  • 基于MSE实现微服务的全链路灰度
  • 使用Java面向对象编写网络通信程序应用
  • Elasticsearch Java API Client 开发
  • 使用 Fleet 管理 Elastic Agent 监控应用
  • 下一篇
    2024年阿里云免费云服务器及学生云服务器申请教程参考

    哆哆女性网长篇鬼故事在线收听免费洗衣液名称起名起名网免费-学周易餐饮财报表游戏seo关键词优化报价奥术神座丛字怎么起名字男孩起名字带子宝宝起名找周易起名建设装饰材料网站电力工程免费起名10笔画的字有哪些起名字seo培训表成都网站制作龙兵搜引擎推广营销苗雅宁今天的风儿甚是喧嚣 电视剧周公解梦梦见爸爸去世了通讯行业注册企业起名艺术公司名字起名字羊杂碎店铺起名电子商务网站怎么制作睢县工作信息上海滩十三太保 电影天堂太原专业网站建设公司网站优化的渠道心照不宣是什么意思林姓男宝宝起名5月份出生的宝宝起名卖汽车用品起个名字淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

    哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化