写点什么

零代码修改,教你 Spring Cloud 应用轻松接入 CSE

  • 2022 年 7 月 28 日
  • 本文字数:1363 字

    阅读完需:约 4 分钟

零代码修改,教你Spring Cloud应用轻松接入CSE

本文分享自华为云社区《Spring Cloud应用零代码修改接入华为云微服务引擎CSE》,作者: 微服务小助手 。

Sermant Agent 介绍


塞尔曼特 Agent 是一种基于 JavaAgent 的无代理服务网格技术。它利用 JavaAgent 来检测主机应用程序,并具有增强的服务治理功能,以解决海量微服务架构中的服务治理问题。


Sermant Agent 处于快速发展阶段,当前已支持多种服务治理能力,包含流量治理、注册、优雅上下线及动态配置能力。

为何使用 Sermant Agent 接入

代码零侵入,配置很简单


相较于 SDK 方式接入,基于 Sermant Agent 的接入会更加快捷高效,配置简单,且应用无需做任何代码改造,仅需在服务启动时附带 Sermant Agent 即可动态接入到 CSE。

支持多种治理能力


Sermant Agent 默认集成流量治理能力,当前支持熔断、限流、隔离仓以及重试治理能力,该能力可基于 CSE 配置中心进行配置与发布。

支持多种注册中心


Sermant Agent 目前支持业内主流的注册中心,已经支持了 ServiceComb ServiceCenter、Naocs,Eureka、Zookeeper 等正在开发中。

支持应用不停机迁移


Sermant Agent 支持服务的双注册,可根据配置中心下发的服务订阅策略,动态修改当前服务的订阅策略,并基于该能力帮助线上应用在业务不中断的前提下完成服务迁移。


不仅如此,Sermant Agent 提供优雅上下线能力,在服务重启、上下线时提供保障,在保护服务的同时,规避服务下线时可能存在的流量丢失问题。

接入原理


当然,在说明原理之前,我们首先需要了解什么是 Java Agent。


Java Agent 是在 JDK1.5 之后引入的新特性,它支持 JVM 将字节码文件读入内存之后,JVM 使用对应的字节流在 Java 堆中生成一个 Class 对象之前,用户可以对其字节码进行修改的能力,JVM 使用修改之后的字节码进行 Class 对象的创建,从而实现 Java 应用的非代码侵入的业务逻辑修改和替换。


Sermant Agent 正是基于动态修改字节码的技术,在服务启动时,动态增强原服务的注册逻辑。那 Sermant Agent 是如何在不修改代码的前提下接入 CSE 呢?主要流程如下:



Sermant Agent 接入 CSE 的时序图


包含以下 6 个步骤:


  1. 首先服务携带 Sermant Agent 启动;

  2. 服务启动时,针对服务执行字节码增强操作(基于 Java Agent 的字节码增强),主要针对注册与配置两块,在步骤 3-5 体现;

  3. 通过字节码增强,动态识别原应用的注册中心;

  4. 注入启动配置,动态关闭原应用的注册中心自动配置逻辑;

  5. 随后通过 Spring 的 SpringFactory 机制注入基于 Spring Cloud 实现的注册 CSE 的自动配置类,由 Spring 接管;

  6. 当应用发起注册时,会通过步骤 5 注入的注册逻辑向 CSE 发起注册,最终完成接入。

简单零代码修改,轻松接入 CSE


接入场景分为虚机接入和容器接入,大家可以根据自身需求选择合适的接入方式。

虚机场景接入 CSE


虚机部署的应用可通过 Sermant Agent 接入到 CSE,点击查看虚机接入CSE流程

接入流程

基于 ECS 将应用接入 CSE 流程如下:


容器场景接入 CSE


容器部署的应用可通过 Sermant Injector 自动挂载 Sermant Agent,从而通过 Sermant Agent 接入到 CSE,点击查看容器接入 CSE 流程。

接入流程


基于 CCE 将应用接入 CSE 流程如下:


更多

支持版本


当前 Sermant 已支持大部分业内主流版本,相关 Spring 及注册中心版本如下:


开源方式接入


除了上述接入方式,还可基于开源方式接入,您可在 Sermant 开源社区拉取最新代码,并自行打包,启动步骤可参考虚机场景接入。


开源项目 Sermant:https://github.com/huaweicloud/Sermant


点击关注,第一时间了解华为云新鲜技术~

发布于: 13 小时前阅读数: 18
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
零代码修改,教你Spring Cloud应用轻松接入CSE_云计算_华为云开发者联盟_InfoQ写作社区