溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Serverless中SAE的遠(yuǎn)程調(diào)試和云端聯(lián)調(diào)

發(fā)布時(shí)間:2021-12-16 11:49:50 來(lái)源:億速云 閱讀:138 作者:柒染 欄目:云計(jì)算

這篇文章給大家介紹如何進(jìn)行Serverless中SAE的遠(yuǎn)程調(diào)試和云端聯(lián)調(diào),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

經(jīng)過(guò)之前課程的學(xué)習(xí),相信大家對(duì)于 Serverless 應(yīng)用引擎(SAE)已經(jīng)有了一定的了解,SAE 是一款基于容器與 kuberneters 的應(yīng)用 PaaS 平臺(tái),在 SAE 提供的 Serverless 場(chǎng)景下,我們不需要再關(guān)注底層資源的運(yùn)維,只需要關(guān)注應(yīng)用的業(yè)務(wù)邏輯本身。但是,我們?cè)陂_發(fā)測(cè)試階段通常會(huì)需要用到調(diào)試功能,因此,為了方便用戶調(diào)試,我們提供了遠(yuǎn)程調(diào)試功能,目前只支持 Java 程序的遠(yuǎn)程調(diào)試。

遠(yuǎn)程調(diào)試

Java 遠(yuǎn)程調(diào)試原理

如何進(jìn)行Serverless中SAE的遠(yuǎn)程調(diào)試和云端聯(lián)調(diào)

眾所周知,我們的 Java 程序是運(yùn)行在 Java 虛擬機(jī)(JVM)之上的,JVM 不單單為我們的 Java 程序提供了跨平臺(tái)能力,并且也提供了相應(yīng)接口與協(xié)議方便遠(yuǎn)程調(diào)試。JDK 中有一個(gè)叫 JPDA 的體系來(lái)規(guī)范與支持 Java 程序的調(diào)試,在這個(gè)體系中,調(diào)試發(fā)起者與被調(diào)試程序的 JVM 底層分別由 JDI 與 JVMTI 模塊來(lái)支持,而兩個(gè)接口之間則是有 JDWP 來(lái)負(fù)責(zé)相互之間的通信。

由此可見,遠(yuǎn)程調(diào)試的本質(zhì)就是兩個(gè) JVM 通過(guò)一個(gè)連接保持通信,被調(diào)試的程序作為服務(wù)端,在某個(gè)指定的端口監(jiān)聽調(diào)試指令,而調(diào)試發(fā)起者則是作為客戶端連接目標(biāo)端口,發(fā)送各種調(diào)試指令并且接收調(diào)試狀態(tài)。

我們此時(shí)已經(jīng)了解了 Java 程序遠(yuǎn)程調(diào)試的原理,那么對(duì)于部署在 SAE 中的 Java 應(yīng)用是如何實(shí)現(xiàn)遠(yuǎn)程調(diào)試的?

SAE 中的 Java 遠(yuǎn)程調(diào)試

如何進(jìn)行Serverless中SAE的遠(yuǎn)程調(diào)試和云端聯(lián)調(diào)

首先,在 SAE 部署的 Java 應(yīng)用需要先開啟調(diào)試模式,因此需要在部署應(yīng)用時(shí)添加相關(guān)的啟動(dòng)命令。另外,由于 SAE 的應(yīng)用默認(rèn)是無(wú)法提供公網(wǎng)訪問(wèn)的,所以需要一個(gè) SLB 提供公網(wǎng)訪問(wèn)能力。以上兩條都設(shè)置好之后,最后可以獲得一個(gè)調(diào)試程序用 IP 與端口,將這個(gè) IP+端口 設(shè)置到 IDE 中就能夠開始遠(yuǎn)程調(diào)試了。

注:以上操作見文章【實(shí)操演示】部分。

端云聯(lián)調(diào)

除了遠(yuǎn)程調(diào)試,對(duì)于微服務(wù)的應(yīng)用,端云聯(lián)調(diào)也是一個(gè)非常重要的功能。

我們?cè)谖⒎?wù)架構(gòu)下的開發(fā)測(cè)試過(guò)程中,經(jīng)常會(huì)遇到需要上線一個(gè)新的服務(wù)或者更新一個(gè)舊服務(wù)的版本的情況。如果沒(méi)有端云聯(lián)調(diào),我們只能先在測(cè)試環(huán)境測(cè)試之后再上線生產(chǎn)環(huán)境。而通常測(cè)試環(huán)境與生產(chǎn)環(huán)境有著這樣那樣的差異,導(dǎo)致有些隱藏的問(wèn)題無(wú)法被及時(shí)發(fā)現(xiàn)。

而有了端云聯(lián)調(diào)功能后,在正式上線之前,我們能夠直接實(shí)現(xiàn)本地服務(wù)與部署在云端的服務(wù)相互調(diào)用,這樣就能夠方便我們更加貼近實(shí)際生產(chǎn)環(huán)境進(jìn)行調(diào)試。

如何進(jìn)行Serverless中SAE的遠(yuǎn)程調(diào)試和云端聯(lián)調(diào)

首先,部署在 SAE 上的服務(wù)與本地網(wǎng)絡(luò)上是有隔離的,所以需要在同一個(gè) VPC 下購(gòu)買一個(gè) ECS 充當(dāng)跳板機(jī)。借助這個(gè)跳板機(jī)我們可以通過(guò) IDEA 的插件完成本地服務(wù)在云端注冊(cè)中心的注冊(cè)與服務(wù)發(fā)現(xiàn)。最后即可完成端云互聯(lián),進(jìn)行端云聯(lián)調(diào)。

關(guān)于如何進(jìn)行Serverless中SAE的遠(yuǎn)程調(diào)試和云端聯(lián)調(diào)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI