一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

讓遠(yuǎn)程成為本地,微服務(wù)后端開(kāi)發(fā)的福音

OSC開(kāi)源社區(qū) ? 來(lái)源:OSC開(kāi)源社區(qū) ? 2023-02-09 11:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

微服務(wù)后端開(kāi)發(fā)的最大痛點(diǎn)之一就是調(diào)試?yán)щy,非常影響我們的開(kāi)發(fā)效率。

如果我們想與其他微服務(wù)進(jìn)行聯(lián)動(dòng)調(diào)試,則需要在本地環(huán)境中啟動(dòng)對(duì)應(yīng)的微服務(wù)模塊,這可能需要大量的配置和構(gòu)建時(shí)間,同時(shí)也會(huì)占用我們本地很多資源,可能還會(huì)出現(xiàn)”帶不動(dòng)“的情況。

雖然說(shuō)我們可以在測(cè)試服務(wù)器上進(jìn)行調(diào)試,但整個(gè)流程也是比較漫長(zhǎng),「提交代碼 -> 觸發(fā)CI/CD -> 等待構(gòu)建成功」,可能簡(jiǎn)單的 BUG 我們提交代碼打個(gè)日志就能解決問(wèn)題,當(dāng)遇到復(fù)雜的 BUG 時(shí)通過(guò)這個(gè)方式在服務(wù)器上調(diào)試就非常難受了,太浪費(fèi)時(shí)間了,「提交 -> 等待」,反反復(fù)復(fù),始終沒(méi)有本地開(kāi)發(fā)工具直接調(diào)試的方便。

下面介紹的工具將遠(yuǎn)程和本地融為一體,讓本地開(kāi)發(fā)更加流暢。

Telepresence

Telepresence 是一個(gè)開(kāi)源工具,用于在本地開(kāi)發(fā)環(huán)境中模擬 Kubernetes 集群中的微服務(wù),它允許開(kāi)發(fā)人員在本地開(kāi)發(fā)環(huán)境中運(yùn)行和調(diào)試微服務(wù),而不必?fù)?dān)心環(huán)境的復(fù)雜性和配置困難。

8617f4fe-a813-11ed-bfe3-dac502259ad0.png

簡(jiǎn)單來(lái)說(shuō) Telepresence 將 Kubernetes 集群中服務(wù)的流量代理到本地,Telepresence 主要有四個(gè)服務(wù):

「Telepresence Daemon:」 本地的守護(hù)進(jìn)程,用于集群通信和攔截流量。

「Telepresence Traffic Manager:」 集群中安裝的流量管理器,代理所有相關(guān)的入站和出站流量,并跟蹤主動(dòng)攔截。

「Telepresence Traffic Agent:」 攔截流量的 sidecar 容器,會(huì)注入到工作負(fù)載的 POD 中。

「Ambassador Cloud:」 SaaS 服務(wù),結(jié)合 Telepresence 一起使用,主要是生成預(yù)覽 URL 和一些增值服務(wù)。

全局流量攔截

全局流量攔截是將 Orders 的所有流量都攔截到我們本地開(kāi)發(fā)機(jī)上,如下圖。

862efaaa-a813-11ed-bfe3-dac502259ad0.png

個(gè)人流量攔截

「?jìng)€(gè)人流量攔截」允許選擇性地?cái)r截服務(wù)的部分流量,而不會(huì)干擾其余流量。這使我們可以與團(tuán)隊(duì)中的其他人共享一個(gè)集群,而不會(huì)干擾他們的工作。每個(gè)開(kāi)發(fā)人員都可以只針對(duì)他們的請(qǐng)求攔截 Orders 服務(wù),同時(shí)共享開(kāi)發(fā)環(huán)境的其余部分。

個(gè)人攔截需要配合 Ambassador Cloud 使用,這是一項(xiàng)收費(fèi)服務(wù),免費(fèi)用戶可以最多攔截 3 個(gè)服務(wù)。

86471252-a813-11ed-bfe3-dac502259ad0.png

結(jié)合 Telepresence 開(kāi)發(fā)調(diào)試 Rainbond 上的微服務(wù)

  • 基于主機(jī)安裝 Rainbond [1]或基于 Helm 安裝 Rainbond[2]。

安裝 Telepresence

MacOS:

#Intel
brewinstalldatawire/blackbird/telepresence

#M1
brewinstalldatawire/blackbird/telepresence-arm64

Windows:

#使用管理員身份打開(kāi)Powershell

#下載壓縮包
Invoke-WebRequesthttps://app.getambassador.io/download/tel2/windows/amd64/latest/telepresence.zip-OutFiletelepresence.zip

#解壓縮包
Expand-Archive-Pathtelepresence.zip-DestinationPathtelepresenceInstaller/telepresence
Remove-Item'telepresence.zip'
cdtelepresenceInstaller/telepresence

#安裝
powershell.exe-ExecutionPolicybypass-c".'.install-telepresence.ps1';"

安裝 Telepresence 流量管理器到集群中

可以使用 Telepresence 快速安裝 Traffic Manager,本地需要有 kubeconfig 文件 ~/.kube/config。

$telepresencehelminstall
...
TrafficManagerinstalledsuccessfully

或者在 Kubernetes 集群中使用 Helm 安裝 Traffic Manager[3]。

本地連接遠(yuǎn)程服務(wù)

本地使用 telepresence connect 連接遠(yuǎn)程 Kubernetes API Server,本地需要有 kubeconfig 文件 ~/.kube/config

$telepresenceconnect
connectedtocontext

在 Rainbond 上快速部署 Pig 微服務(wù)應(yīng)用

通過(guò) Rainbond 開(kāi)源應(yīng)用商店快速部署 Pig 微服務(wù)應(yīng)用,部署后如下圖

865fb988-a813-11ed-bfe3-dac502259ad0.png

后面會(huì)以 pig-auth 這個(gè)服務(wù)為例,演示本地開(kāi)發(fā)調(diào)試的流程,這里需要做一些小改動(dòng):

  1. 從應(yīng)用商店安裝的應(yīng)用默認(rèn) Workload 是字符串,需要修改 Workload 為易于查看的,這里以 pig-auth 為例,進(jìn)入組件中編輯組件名稱,修改組件英文名稱為 auth

  2. 簡(jiǎn)單來(lái)說(shuō) telepresence 的工作原理就是代理 k8s service,默認(rèn) gateway 到 auth 是使用的 nacos 做的負(fù)載均衡,這樣的話 telepresence 是無(wú)法攔截到流量的,我們需要修改 gateway 配置使用 k8s service 做負(fù)載均衡。

  • 打開(kāi) pig-register 組件的 8848 對(duì)外端口,訪問(wèn) nacos,修改 pig-gateway-dev.ymlspring.cloud.gateway.routes.uri: http://gr795b69:3000 ,gr795b69:3000 通過(guò) pig-auth 組件內(nèi)的端口訪問(wèn)地址獲取。
  • 如果本地只啟動(dòng)一個(gè) pig-auth 服務(wù),pig-auth 需要連接 pig-register 和 redis,那么就需要將這倆服務(wù)的對(duì)外端口打開(kāi),并修改配置文件讓本地的 pig-auth 服務(wù)可以連接遠(yuǎn)程到 pig-register 和 redis。

在本地調(diào)試 auth 服務(wù)

使用 IDEA 或 VScode 在本地啟動(dòng) pig-auth 服務(wù)。

在本地使用 telepresence 攔截 pig-auth 流量,命令如下:

$telepresenceintercept--port<local-port>:-n

命令拆解

#
#需要攔截流量的服務(wù)workload
$kubectlgetdeploy-nzq
NAMEREADYUP-TO-DATEAVAILABLEAGE
pig-auth1/111146m

#本地端口

#
#需要攔截流量的服務(wù)的serviceportname
$kubectlgetsvcgr795b69-nzq-oyaml
...
ports:
-name:http-3000
port:3000
protocol:TCP
targetPort:3000
...

#命名空間

最終命令:

$telepresenceinterceptpig-auth--port3000:http-3000-nzq
UsingDeploymentpig-auth
intercepted
Interceptname:pig-auth-zq
State:ACTIVE
Workloadkind:Deployment
Destination:127.0.0.1:3000
ServicePortIdentifier:http-3000
VolumeMountError:sshfsisnotinstalledonyourlocalmachine
Intercepting:allTCPrequests

我們?cè)诒镜亟o退出登陸這塊邏輯打上斷點(diǎn),然后通過(guò)線上的前端退出登陸,打到我們本地 IDEA上,整體效果如下:

866fe8ee-a813-11ed-bfe3-dac502259ad0.gif

最后

Telepresence 可以幫助我們簡(jiǎn)化本地開(kāi)發(fā)流程,同時(shí)保證代碼的正確性和可靠性。還能使我們?cè)诩褐休p松調(diào)試和測(cè)試代碼,提高開(kāi)發(fā)效率。結(jié)合 Rainbond 的部署簡(jiǎn)化,從開(kāi)發(fā)到部署都非常的簡(jiǎn)單,讓我們專注于代碼編寫(xiě)。

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2787

    瀏覽量

    50206
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9772

    瀏覽量

    87786
  • 微服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    7730

原文標(biāo)題:讓遠(yuǎn)程成為本地,微服務(wù)后端開(kāi)發(fā)的福音

文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    微服務(wù)架構(gòu)下分布式事務(wù)解決方案 —— 阿里GTS

    中間件。原文地址:https://yq.aliyun.com/articles/542020 1 微服務(wù)的發(fā)展微服務(wù)倡導(dǎo)將復(fù)雜的單體應(yīng)用拆分為若干個(gè)功能簡(jiǎn)單、松耦合的服務(wù),這樣可以降低開(kāi)發(fā)
    發(fā)表于 03-16 11:14

    微服務(wù)網(wǎng)關(guān)gateway的相關(guān)資料推薦

    目錄微服務(wù)網(wǎng)關(guān) gateway 概述[路由器網(wǎng)關(guān) Zuul 概述]嵌入式 Zuul 反向代理微服務(wù)網(wǎng)關(guān) gateway 概述1、想象一下一個(gè)購(gòu)物應(yīng)用程序的產(chǎn)品詳情頁(yè)面展示了指定商品的信息:2、若是
    發(fā)表于 12-23 08:19

    關(guān)于微服務(wù)的一些問(wèn)題的解答

    微服務(wù)確實(shí)很受歡迎,但是對(duì)于微服務(wù)的誤解也是事實(shí),本文對(duì)這些誤解一一來(lái)介紹下: 一、微服務(wù)不夠微? 盡管微服務(wù)定義的很明確,但是開(kāi)發(fā)者社區(qū)對(duì)
    發(fā)表于 10-11 11:27 ?0次下載
    關(guān)于<b class='flag-5'>微服務(wù)</b>的一些問(wèn)題的解答

    什么是微服務(wù)_微服務(wù)知識(shí)點(diǎn)全面總結(jié)

    微服務(wù)是一個(gè)新興的軟件架構(gòu),就是把一個(gè)大型的單個(gè)應(yīng)用程序和服務(wù)拆分為數(shù)十個(gè)的支持微服務(wù)。一個(gè)微服務(wù)的策略可以工作變得更為簡(jiǎn)便,它可擴(kuò)展單個(gè)
    的頭像 發(fā)表于 02-07 16:06 ?1.6w次閱讀

    微服務(wù)可靠性設(shè)計(jì)

    微服務(wù)化之后,系統(tǒng)分布式部署,傳統(tǒng)單個(gè)流程的本地API調(diào)用被拆分成多個(gè)微服務(wù)之間的跨網(wǎng)絡(luò)調(diào)用,由于引入了網(wǎng)絡(luò)通信、序列化和反序列化等操作,系統(tǒng)發(fā)生故障的概率提高了很多。微服務(wù)故障,有些
    的頭像 發(fā)表于 02-09 09:21 ?4102次閱讀
    <b class='flag-5'>微服務(wù)</b>可靠性設(shè)計(jì)

    java微服務(wù)架構(gòu)有哪些

    本文首先簡(jiǎn)單介紹了微服務(wù)的概念以及使用微服務(wù)所能帶來(lái)的優(yōu)勢(shì),然后結(jié)合實(shí)例介紹了幾個(gè)常見(jiàn)的Java微服務(wù)框架。微服務(wù)開(kāi)發(fā)領(lǐng)域的應(yīng)用越來(lái)越廣泛
    的頭像 發(fā)表于 02-09 10:34 ?8936次閱讀
    java<b class='flag-5'>微服務(wù)</b>架構(gòu)有哪些

    微服務(wù)優(yōu)勢(shì)_微服務(wù)架構(gòu)的好處與不足

    是相互獨(dú)立的,所以不同的服務(wù)可以使用不同的語(yǔ)言來(lái)開(kāi)發(fā),或者根據(jù)業(yè)務(wù)的需求使用不同類型的數(shù)據(jù)庫(kù)??偠灾?b class='flag-5'>微服務(wù)架構(gòu)有很多吸引人的地方,不過(guò)在擁抱微服務(wù)之前要認(rèn)清它所帶來(lái)的挑戰(zhàn)。而每一種
    發(fā)表于 02-23 11:24 ?4524次閱讀

    Dubbo 如何成為連接異構(gòu)微服務(wù)體系的最佳服務(wù)開(kāi)發(fā)框架

    從編程開(kāi)發(fā)的角度來(lái)說(shuō),Apache Dubbo (以下簡(jiǎn)稱 Dubbo )首先是一款 RPC 服務(wù)框架,它最大的優(yōu)勢(shì)在于提供了面向接口代理的服務(wù)編程模型,對(duì)開(kāi)發(fā)者屏蔽了底層的
    發(fā)表于 03-12 17:04 ?1068次閱讀
    Dubbo 如何<b class='flag-5'>成為</b>連接異構(gòu)<b class='flag-5'>微服務(wù)</b>體系的最佳<b class='flag-5'>服務(wù)</b><b class='flag-5'>開(kāi)發(fā)</b>框架

    微服務(wù)為什么要用到API網(wǎng)關(guān)?

    微服務(wù)架構(gòu)(通常簡(jiǎn)稱為微服務(wù))是指開(kāi)發(fā)應(yīng)用所用的一種架構(gòu)形式。通過(guò)微服務(wù),可將大型應(yīng)用分解成多個(gè)獨(dú)立的組件,其中每個(gè)組件都有各自的責(zé)任領(lǐng)域。
    的頭像 發(fā)表于 04-14 09:17 ?975次閱讀

    基于Traefik自研的微服務(wù)網(wǎng)關(guān)

    數(shù)據(jù)平面主要功能是接入用戶的HTTP請(qǐng)求和微服務(wù)被拆分后的聚合。使用微服務(wù)網(wǎng)關(guān)統(tǒng)一對(duì)外暴露后端服務(wù)的API和契約,路由和過(guò)濾功能正是網(wǎng)關(guān)的核心能力模塊。另外,
    的頭像 發(fā)表于 04-16 11:08 ?3134次閱讀

    【Spring Cloud 】基于微服務(wù)架構(gòu)的智慧工地監(jiān)管平臺(tái)源碼帶APP

    技術(shù)架構(gòu):微服務(wù) 開(kāi)發(fā)語(yǔ)言:Java 開(kāi)發(fā)工具:Idea 前端框架:Vue 后端框架:Spring Cloud 數(shù) 據(jù) 庫(kù):My
    的頭像 發(fā)表于 08-28 11:10 ?863次閱讀
    【Spring Cloud 】基于<b class='flag-5'>微服務(wù)</b>架構(gòu)的智慧工地監(jiān)管平臺(tái)源碼帶APP

    springcloud微服務(wù)架構(gòu)

    Spring Cloud是一個(gè)開(kāi)源的微服務(wù)架構(gòu)框架,它提供了一系列工具和組件,用于構(gòu)建和管理分布式系統(tǒng)中的微服務(wù)。它基于Spring框架,旨在通過(guò)簡(jiǎn)化開(kāi)發(fā)過(guò)程和降低系統(tǒng)復(fù)雜性來(lái)幫助開(kāi)發(fā)
    的頭像 發(fā)表于 11-23 09:24 ?2013次閱讀

    設(shè)計(jì)微服務(wù)架構(gòu)的原則

    微服務(wù)是一種軟件架構(gòu)策略,有利于改善整體性能和可擴(kuò)展性。你可能會(huì)想,我的團(tuán)隊(duì)需不需要采用微服務(wù),設(shè)計(jì)微服務(wù)架構(gòu)有哪些原則?本文會(huì)給你一些靈感。文章速覽:微服務(wù)設(shè)計(jì)的要素
    的頭像 發(fā)表于 11-26 08:05 ?902次閱讀
    設(shè)計(jì)<b class='flag-5'>微服務(wù)</b>架構(gòu)的原則

    如何構(gòu)建彈性、高可用的微服務(wù)?

    基于微服務(wù)的應(yīng)用程序可實(shí)現(xiàn)戰(zhàn)略性數(shù)字轉(zhuǎn)型和云遷移計(jì)劃,對(duì)于開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),這種架構(gòu)十分重要。那么,如何來(lái)構(gòu)建彈性、高可用的微服務(wù)呢?RedisEnterprise給出了一個(gè)完美的方案。文況速覽
    的頭像 發(fā)表于 11-26 08:06 ?708次閱讀
    如何構(gòu)建彈性、高可用的<b class='flag-5'>微服務(wù)</b>?

    本地網(wǎng)站秒變公網(wǎng)可訪問(wèn)!開(kāi)發(fā)者必備的內(nèi)網(wǎng)穿透工具

    效率拉滿! 為什么開(kāi)發(fā)者需要這個(gè)技能? 遠(yuǎn)程協(xié)作 :前端開(kāi)發(fā)本地頁(yè)面,直接分享鏈接給后端/產(chǎn)品,無(wú)需部署到測(cè)試
    的頭像 發(fā)表于 06-19 10:50 ?228次閱讀
    <b class='flag-5'>本地</b>網(wǎng)站秒變公網(wǎng)可訪問(wèn)!<b class='flag-5'>開(kāi)發(fā)</b>者必備的內(nèi)網(wǎng)穿透工具