色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

OSC開源社區 ? 來源:OSC開源社區 ? 2023-02-09 11:12 ? 次閱讀

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

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

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

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

Telepresence

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

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

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

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

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

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

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

全局流量攔截

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

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

個人流量攔截

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

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

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

結合 Telepresence 開發調試 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 這個服務為例,演示本地開發調試的流程,這里需要做一些小改動:

  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:3000gr795b69:3000 通過 pig-auth 組件內的端口訪問地址獲取。
  • 如果本地只啟動一個 pig-auth 服務,pig-auth 需要連接 pig-register 和 redis,那么就需要將這倆服務的對外端口打開,并修改配置文件讓本地的 pig-auth 服務可以連接遠程到 pig-register 和 redis。

在本地調試 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 可以幫助我們簡化本地開發流程,同時保證代碼的正確性和可靠性。還能使我們在集群中輕松調試和測試代碼,提高開發效率。結合 Rainbond 的部署簡化,從開發到部署都非常的簡單,讓我們專注于代碼編寫。

審核編輯 :李倩


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

    關注

    7

    文章

    2722

    瀏覽量

    47571
  • 服務器
    +關注

    關注

    12

    文章

    9237

    瀏覽量

    85663
  • 微服務
    +關注

    關注

    0

    文章

    138

    瀏覽量

    7366

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

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

收藏 人收藏

    評論

    相關推薦

    微服務架構下分布式事務解決方案 —— 阿里GTS

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

    微服務網關gateway的相關資料推薦

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

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

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

    什么是微服務_微服務知識點全面總結

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

    微服務可靠性設計

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

    java微服務架構有哪些

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

    微服務優勢_微服務架構的好處與不足

    是相互獨立的,所以不同的服務可以使用不同的語言來開發,或者根據業務的需求使用不同類型的數據庫。總而言之,微服務架構有很多吸引人的地方,不過在擁抱微服務之前要認清它所帶來的挑戰。而每一種
    發表于 02-23 11:24 ?4397次閱讀

    Python微服務開發的源代碼合集免費下載

    本文檔的主要內容詳細介紹的是Python微服務開發的源代碼合集免費下載。
    發表于 09-20 08:00 ?3次下載

    Dubbo 如何成為連接異構微服務體系的最佳服務開發框架

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

    微服務為什么要用到API網關?

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

    基于Traefik自研的微服務網關

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

    【Spring Cloud 】基于微服務架構的智慧工地監管平臺源碼帶APP

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

    springcloud微服務架構

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

    設計微服務架構的原則

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

    如何構建彈性、高可用的微服務

    基于微服務的應用程序可實現戰略性數字轉型和云遷移計劃,對于開發團隊來說,這種架構十分重要。那么,如何來構建彈性、高可用的微服務呢?RedisEnterprise給出了一個完美的方案。文況速覽
    的頭像 發表于 11-26 08:06 ?487次閱讀
    如何構建彈性、高可用的<b class='flag-5'>微服務</b>?
    主站蜘蛛池模板: 亚洲国产成人久久一区www妖精| 欧美亚洲另类图片| z00兽200俄罗斯| 真实国产精品视频国产网| 性盈盈剧场| 特级毛片AAAAAA| 欧美影院在线观看完整版 mp4| 麻花传媒XK在线观看| 快播h动漫网站| 久久精品亚洲国产AV涩情| 黄色直接观看| 久久9精品区-无套内射无码| 狠狠狠色丁香婷婷综合久久| 国语自产一区视频| 国产真实夫妇交换视频| 国产午夜福利片| 国产区免费在线观看| 国产精品亚洲视频在线观看| 国产精品一区二区亚瑟不卡| 国产精品人成在线播放新网站| 国产 高清 无码 中文| 国产av在在免费线观看美女| 动漫女生的逼| 国产精品久久久久久影院| 国产精品线路一线路二| 国产精品线路一线路二| 狠狠插影院| 久久伊人网站| 欧美14videosex性欧美成人| 欧美亚洲国产免费高清视频| 人妻熟女斩五十路0930| 天堂岛www天堂资源在线| 小草视频免费观看在线| 亚洲乱亚洲乱妇在线观看| 伊人久久大香线蕉电影院| 13小箩利洗澡无码视频APP| bbw极度另类孕妇| 国产电影午夜成年免费视频| 国产综合在线观看| 绝逼会被锁| 日韩男明星|