chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

讓遠程成為本地,微服務后端開發(fā)的福音

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

掃碼添加小助手

加入工程師交流群

微服務后端開發(fā)的最大痛點之一就是調(diào)試困難,非常影響我們的開發(fā)效率。

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

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

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

Telepresence

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

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

簡單來說 Telepresence 將 Kubernetes 集群中服務的流量代理到本地,Telepresence 主要有四個服務:

「Telepresence Daemon:」 本地的守護進程,用于集群通信和攔截流量。

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

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

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

全局流量攔截

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

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

個人流量攔截

「個人流量攔截」允許選擇性地攔截服務的部分流量,而不會干擾其余流量。這使我們可以與團隊中的其他人共享一個集群,而不會干擾他們的工作。每個開發(fā)人員都可以只針對他們的請求攔截 Orders 服務,同時共享開發(fā)環(huán)境的其余部分。

個人攔截需要配合 Ambassador Cloud 使用,這是一項收費服務,免費用戶可以最多攔截 3 個服務。

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

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

  • 基于主機安裝 Rainbond [1]或基于 Helm 安裝 Rainbond[2]。

安裝 Telepresence

MacOS:

#Intel
brewinstalldatawire/blackbird/telepresence

#M1
brewinstalldatawire/blackbird/telepresence-arm64

Windows:

#使用管理員身份打開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]。

本地連接遠程服務

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

$telepresenceconnect
connectedtocontext

在 Rainbond 上快速部署 Pig 微服務應用

通過 Rainbond 開源應用商店快速部署 Pig 微服務應用,部署后如下圖

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

后面會以 pig-auth 這個服務為例,演示本地開發(fā)調(diào)試的流程,這里需要做一些小改動:

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

  2. 簡單來說 telepresence 的工作原理就是代理 k8s service,默認 gateway 到 auth 是使用的 nacos 做的負載均衡,這樣的話 telepresence 是無法攔截到流量的,我們需要修改 gateway 配置使用 k8s service 做負載均衡。

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

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

使用 IDEA 或 VScode 在本地啟動 pig-auth 服務。

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

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

命令拆解

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

#本地端口

#
#需要攔截流量的服務的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

我們在本地給退出登陸這塊邏輯打上斷點,然后通過線上的前端退出登陸,打到我們本地 IDEA上,整體效果如下:

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

最后

Telepresence 可以幫助我們簡化本地開發(fā)流程,同時保證代碼的正確性和可靠性。還能使我們在集群中輕松調(diào)試和測試代碼,提高開發(fā)效率。結(jié)合 Rainbond 的部署簡化,從開發(fā)到部署都非常的簡單,讓我們專注于代碼編寫。

審核編輯 :李倩


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

    關注

    7

    文章

    2787

    瀏覽量

    50243
  • 服務器
    +關注

    關注

    13

    文章

    9783

    瀏覽量

    87818
  • 微服務
    +關注

    關注

    0

    文章

    145

    瀏覽量

    7732

原文標題:讓遠程成為本地,微服務后端開發(fā)的福音

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    關于微服務的一些問題的解答

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

    什么是微服務_微服務知識點全面總結(jié)

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

    微服務可靠性設計

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

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

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

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

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

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

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

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

    微服務架構(gòu)(通常簡稱為微服務)是指開發(fā)應用所用的一種架構(gòu)形式。通過微服務,可將大型應用分解成多個獨立的組件,其中每個組件都有各自的責任領域。
    的頭像 發(fā)表于 04-14 09:17 ?981次閱讀

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

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

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

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

    springcloud微服務架構(gòu)

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

    設計微服務架構(gòu)的原則

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

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

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

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

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