温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行Serverless中SAE的远程调试和云端联调

发布时间:2021-12-16 11:49:50 来源:亿速云 阅读:128 作者:柒染 栏目:云计算

这篇文章给大家介绍如何进行Serverless中SAE的远程调试和云端联调,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

经过之前课程的学习,相信大家对于 Serverless 应用引擎(SAE)已经有了一定的了解,SAE 是一款基于容器与 kuberneters 的应用 PaaS 平台,在 SAE 提供的 Serverless 场景下,我们不需要再关注底层资源的运维,只需要关注应用的业务逻辑本身。但是,我们在开发测试阶段通常会需要用到调试功能,因此,为了方便用户调试,我们提供了远程调试功能,目前只支持 Java 程序的远程调试。

远程调试

Java 远程调试原理

如何进行Serverless中SAE的远程调试和云端联调

众所周知,我们的 Java 程序是运行在 Java 虚拟机(JVM)之上的,JVM 不单单为我们的 Java 程序提供了跨平台能力,并且也提供了相应接口与协议方便远程调试。JDK 中有一个叫 JPDA 的体系来规范与支持 Java 程序的调试,在这个体系中,调试发起者与被调试程序的 JVM 底层分别由 JDI 与 JVMTI 模块来支持,而两个接口之间则是有 JDWP 来负责相互之间的通信。

由此可见,远程调试的本质就是两个 JVM 通过一个连接保持通信,被调试的程序作为服务端,在某个指定的端口监听调试指令,而调试发起者则是作为客户端连接目标端口,发送各种调试指令并且接收调试状态。

我们此时已经了解了 Java 程序远程调试的原理,那么对于部署在 SAE 中的 Java 应用是如何实现远程调试的?

SAE 中的 Java 远程调试

如何进行Serverless中SAE的远程调试和云端联调

首先,在 SAE 部署的 Java 应用需要先开启调试模式,因此需要在部署应用时添加相关的启动命令。另外,由于 SAE 的应用默认是无法提供公网访问的,所以需要一个 SLB 提供公网访问能力。以上两条都设置好之后,最后可以获得一个调试程序用 IP 与端口,将这个 IP+端口 设置到 IDE 中就能够开始远程调试了。

注:以上操作见文章【实操演示】部分。

端云联调

除了远程调试,对于微服务的应用,端云联调也是一个非常重要的功能。

我们在微服务架构下的开发测试过程中,经常会遇到需要上线一个新的服务或者更新一个旧服务的版本的情况。如果没有端云联调,我们只能先在测试环境测试之后再上线生产环境。而通常测试环境与生产环境有着这样那样的差异,导致有些隐藏的问题无法被及时发现。

而有了端云联调功能后,在正式上线之前,我们能够直接实现本地服务与部署在云端的服务相互调用,这样就能够方便我们更加贴近实际生产环境进行调试。

如何进行Serverless中SAE的远程调试和云端联调

首先,部署在 SAE 上的服务与本地网络上是有隔离的,所以需要在同一个 VPC 下购买一个 ECS 充当跳板机。借助这个跳板机我们可以通过 IDEA 的插件完成本地服务在云端注册中心的注册与服务发现。最后即可完成端云互联,进行端云联调。

关于如何进行Serverless中SAE的远程调试和云端联调就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI