关于微服务:微服务远程DebugNocalhost-Rainbond微服务开发第二弹

5次阅读

共计 2461 个字符,预计需要花费 7 分钟才能阅读完成。

之前的文章中咱们介绍了如何通过 Nocalhost 疾速开发 Rainbond 上的微服务,介绍了根本的开发流程。

本文将续接上文持续介绍,应用 Nocalhost 开发配置文件 实现以下内容:

  • 一键 Run 和 近程 Debug
  • 长久化配置
  • 开发容器资源限度
  • 端口转发

什么是开发配置?

开发配置是围绕 开发模式 来进行的,例如应用什么镜像来进入 开发模式 ,是否须要开启长久化来保留开发容器的内容,将哪些文件同步到开发容器中,如何一键调试、一键运行容器内的服务等。配置了正确且适合的开发配置后,能够在应用 Nocalhost 开发模式 时更加得心应手。

部署 Rainbond + SpringCloud

接下来持续以上文中的 SpringCloud Pig 为例,调试 Java Maven 服务的 Pig-auth 模块。

我的项目 Gitee 地址:https://gitee.com/zhangbigqi/pig

部署 Rainbond

这里就不具体介绍 Rainbond 的装置,请参阅 基于 Linux 装置 Rainbond。

部署 SpringCloud

咱们在 Rainbond 内对接了开源利用商店后,在开源利用商店内搜寻 Spring Cloud Pig 装置 3.5.0 版本。

来自利用商店装置利用组件的英文名称是主动生成的字符串,须要咱们设置一下组件的英文名称(Deployment Name),通过 Nocalhost 连贯到集群时能够很直观的分分明 Deployment 对应的组件。

Nocalhost 对接 Rainbond

  1. 装置 Nocalhost JetBrains Plugin 插件,请参阅文档 装置 Nocalhost JetBrains Plugin 插件。
  2. 获取 K8s Kubeconfig,请参阅文档 获取 Kubeconfig 文件。
  3. pig 命名空间下,找到工作负载 pig-auth 右击并抉择 Dev Config(开发配置)

  1. 将以下配置文件复制到 Dev Config 中。
# Deployment Name
name: pig-auth
serviceType: deployment
containers:
    # Deployment 主容器名称
  - name: auth
    dev:
        # 开发镜像,该镜像蕴含了 Java Maven 环境
      image: registry.cn-hangzhou.aliyuncs.com/zqqq/maven:3.8.6-openjdk-8
      # 默认终端为 bash
      shell: bash
      # Rainbond 提供的 StorageClass Name
      storageClass: rainbondvolumerwx
      # 配置开发容器资源
      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:
        # 近程端口,对应 Debug 命令中的 address=5005
        remoteDebugPort: 5005
        # 抉择 Java 语言
        language: java
      # 热加载
      hotReload: true
      # 文件同步
      sync:
        type: send
        mode: gitIgnore
        deleteProtection: true
      # 端口转发,转发容器内的 3000 端口到本地 3999
      portForward:
        - 3999:3000

一键 Run

  1. 右击工作负载 pig-auth
  2. 抉择 Remote Run。
  3. Nocalhost 会主动进入 DevMode 并执行 Remote Run。

一键 Debug

  1. 右击工作负载 pig-auth
  2. 抉择 Remote Debug。
  3. Nocalhost 会主动进入 DevMode 并执行 Remote Debug。
  4. 在代码中打上断点,发动申请,进入 IDE Debug 模式。

长久化配置

在开发时,咱们心愿长久化的文件大多数都是 依赖包 日志,本篇文章中也是缓存了 Java 的依赖包。

rainbondvolumerwx 是 Rainbond 默认提供的存储类,填写以下配置后会在以后命名空间下主动创立 PVC,如下:

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

容器资源限度

限度开发容器的资源,限额能让服务器的资源利用最大化,能够通过以下开发配置批改:

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

端口转发

转发容器端口到本地,能够通过以下开发配置批改:

portForward:
  - 3999:3000         # 转发容器 3000 端口到本地 3999 端口

最初

当然 Nocalhost 能够同时调试多个微服务,同样的形式只需批改配置文件中的 Deployment Name 和 Containers Name 以及微服务的子模块。

Nocalhost 还有一些开发配置文中没讲到的,比方:开发环境变量、文件同步的两种模式 pattern gitignore 等等,并且 Nocalhost 反对多种语言,Java 只是其中一种,小伙伴们能够自行摸索。

Nocalhost + Rainbond 让开发、部署更加高效、便捷。

正文完
 0