<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          微服務(wù)遠(yuǎn)程Debug,Nocalhost + Rainbond微服務(wù)開發(fā)第二彈

          共 6510字,需瀏覽 14分鐘

           ·

          2022-07-13 21:03

          之前的文章中我們介紹了如何通過 Nocalhost 快速開發(fā) Rainbond 上的微服務(wù),介紹了基本的開發(fā)流程。

          本文將續(xù)接上文繼續(xù)介紹,使用 Nocalhost 開發(fā)配置文件[1] 實(shí)現(xiàn)以下內(nèi)容:

          • 一鍵 Run 和 遠(yuǎn)程Debug
          • 持久化配置
          • 開發(fā)容器資源限制
          • 端口轉(zhuǎn)發(fā)

          「什么是開發(fā)配置?」

          開發(fā)配置是圍繞 開發(fā)模式 來進(jìn)行的,例如使用什么鏡像來進(jìn)入 開發(fā)模式,是否需要開啟持久化來保存開發(fā)容器的內(nèi)容,將哪些文件同步到開發(fā)容器中,如何一鍵調(diào)試、一鍵運(yùn)行容器內(nèi)的服務(wù)等。配置了正確且合適的開發(fā)配置后,可以在使用 Nocalhost 開發(fā)模式 時更加得心應(yīng)手。

          部署 Rainbond + SpringCloud

          接下來繼續(xù)以上文中的 SpringCloud Pig 為例,調(diào)試 Java Maven 服務(wù)的 Pig-auth 模塊。

          項(xiàng)目 Gitee 地址:https://gitee.com/zhangbigqi/pig

          部署 Rainbond

          這里就不詳細(xì)介紹 Rainbond 的安裝,請參閱 基于Linux安裝Rainbond[2]

          部署 SpringCloud

          我們在 Rainbond 內(nèi)對接了開源應(yīng)用商店后,在開源應(yīng)用商店內(nèi)搜索 Spring Cloud Pig 安裝 3.5.0 版本。

          來自應(yīng)用商店安裝應(yīng)用組件的英文名稱是自動生成的字符串,需要我們設(shè)置一下組件的英文名稱(Deployment Name),通過 Nocalhost 連接到集群時可以很直觀的分清楚 Deployment 對應(yīng)的組件。

          Nocalhost 對接 Rainbond

          1. 安裝 Nocalhost JetBrains Plugin 插件,請參閱文檔 安裝Nocalhost JetBrains Plugin 插件[3]

          2. 獲取 K8s Kubeconfig,請參閱文檔 獲取 Kubeconfig 文件[4]

          3. pig 命名空間下,找到工作負(fù)載 pig-auth 右擊并選擇 Dev Config (開發(fā)配置)

          1. 將以下配置文件復(fù)制到 Dev Config 中。
          # Deployment Name
          name: pig-auth
          serviceType: deployment
          containers:
           # Deployment 主容器名稱
            - name: auth
              dev:
               # 開發(fā)鏡像,該鏡像包含了 Java Maven 環(huán)境
                image: registry.cn-hangzhou.aliyuncs.com/zqqq/maven:3.8.6-openjdk-8
                # 默認(rèn)終端為 bash
                shell: bash
                # Rainbond 提供的 StorageClass Name
                storageClass: rainbondvolumerwx
                # 配置開發(fā)容器資源
                resources:
                  limits:
                    memory: 4096Mi
                    cpu: "2"
                  requests:
                    memory: 2048Mi
                    cpu: "1"
                persistentVolumeDirs:
                 # Maven 依賴包緩存路徑,配合 storageClass 一起食用
                  - path: /root/.m2/repository
                    capacity: 10Gi
                command:
                  # 一鍵啟動命令,安裝依賴包和啟動 pig-auth 子模塊
                  run:
                    - mvn
                    - install
                    - '&&'
                    - mvn
                    - spring-boot:run
                    - -pl
                    # 指定子模塊啟動
                    - pig-auth
                  # 一鍵 Debug 命令,安裝依賴包和 Debug pig-auth 子模塊
                  debug:
                    - mvn
                    - install
                    - '&&'
                    - mvn
                    - spring-boot:run
                    - -pl
                    # 指定子模塊啟動
                    - pig-auth
                    # Java Debug 命令
                    - -Dspring-boot.run.jvmArguments=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
                debug:
                  # 遠(yuǎn)程端口,對應(yīng)Debug命令中的 address=5005
                  remoteDebugPort: 5005
                  # 選擇 Java 語言
                  language: java
                # 熱加載
                hotReload: true
                # 文件同步
                sync:
                  type: send
                  mode: gitIgnore
                  deleteProtection: true
                # 端口轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)容器內(nèi)的3000端口到本地3999
                portForward:
                  - 3999:3000

          一鍵 Run

          1. 右擊工作負(fù)載 pig-auth
          2. 選擇 Remote Run。
          3. Nocalhost 會自動進(jìn)入 DevMode 并執(zhí)行 Remote Run。


          一鍵 Debug

          1. 右擊工作負(fù)載 pig-auth
          2. 選擇 Remote Debug。
          3. Nocalhost 會自動進(jìn)入 DevMode 并執(zhí)行 Remote Debug。
          4. 在代碼中打上斷點(diǎn),發(fā)起請求,進(jìn)入 IDE Debug 模式。


          持久化配置

          在開發(fā)時,我們希望持久化的文件大多數(shù)都是 依賴包 日志,本篇文章中也是緩存了 Java 的依賴包。

          rainbondvolumerwx 是 Rainbond 默認(rèn)提供的存儲類,填寫以下配置后會在當(dāng)前命名空間下自動創(chuàng)建 PVC,如下:

          storageClass: rainbondvolumerwx     
          persistentVolumeDirs:
            - path: /root/.m2/repository
              capacity: 10Gi

          容器資源限制

          限制開發(fā)容器的資源,限額能讓服務(wù)器的資源利用最大化,可以通過以下開發(fā)配置修改:

          resources:
            limits:
              memory: 4096Mi
              cpu: "2"
            requests:
              memory: 2048Mi
              cpu: "1"

          端口轉(zhuǎn)發(fā)

          轉(zhuǎn)發(fā)容器端口到本地,可以通過以下開發(fā)配置修改:

          portForward:
            - 3999:3000   # 轉(zhuǎn)發(fā)容器 3000 端口到本地 3999 端口

          最后

          當(dāng)然 Nocalhost 可以同時調(diào)試多個微服務(wù),同樣的方式只需修改配置文件中的 Deployment Name 和 Containers Name 以及微服務(wù)的子模塊。

          Nocalhost 還有一些開發(fā)配置文中沒講到的,比如:開發(fā)環(huán)境變量、文件同步的兩種模式 pattern gitignore 等等,并且 Nocalhost 支持多種語言,Java 只是其中一種,小伙伴們可以自行探索。

          Nocalhost + Rainbond 讓開發(fā)、部署更加高效、便捷。

          Reference Link

          [1]

          Nocalhost 開發(fā)配置文件: https://nocalhost.dev/docs/config/config-overview-en/

          [2]

          基于Linux安裝Rainbond: https://www.rainbond.com/docs/installation/install-with-ui/host-install-with-ui

          [3]

          安裝Nocalhost JetBrains Plugin 插件: https://nocalhost.dev/docs/installation/

          [4]

          獲取 Kubeconfig 文件: https://www.rainbond.com/docs/ops-guide/tools/kubectl

          瀏覽 29
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  玖玖视频这里只有精品 | 日韩视频三区 | 亚洲色图成人网 | 亚洲第一视频欧美在线视频 | 狼人综合在线视频 |