当前位置:网站首页>Micro service remote debug, nocalhost + rainbow micro service development second bullet

Micro service remote debug, nocalhost + rainbow micro service development second bullet

2022-07-07 19:05:00 InfoQ

In the previous article, we introduced how to pass  
Nocalhost  Rapid development of  Rainbond  Microservices on
, Introduced the basic development process .
This article will continue to introduce , Use  
Nocalhost  Development profile
  Achieve the following :
  • Onekey  Run  and   long-range Debug
  • Persistent configuration
  • Development container resource limitations
  • Port forwarding
「 What is development configuration ?」
Development configuration is around  
Development mode
  To carry out , For example, what image is used to enter  
Development mode
, Whether you need to turn on persistence to save the contents of the development container , Which files are synchronized into the development container , How to debug with one click 、 Run the services in the container with one click .  After configuring the correct and appropriate development configuration , Can be used in  Nocalhost 
Development mode
  It's more handy when it comes to .

Deploy  Rainbond + SpringCloud

Next, continue to the above article  SpringCloud Pig  For example , debugging  Java Maven  Service  Pig-auth  modular .
project  Gitee  Address :https://gitee.com/zhangbigqi/pig

Deploy  Rainbond

I won't go into details here  Rainbond  Installation , see also  
be based on Linux install Rainbond
.

Deploy  SpringCloud

We are  Rainbond  After docking with the open source app store , Search in the open source app store  
Spring Cloud Pig
  install  
3.5.0
edition .
The English name of the application component installed from the app store is an automatically generated string , We need to set the English name of the component (Deployment Name), adopt  Nocalhost  When connecting to the cluster, you can distinguish clearly  Deployment  Corresponding components .
null

Nocalhost  docking  Rainbond

  • install  Nocalhost JetBrains Plugin  plug-in unit , See documentation  
    install Nocalhost JetBrains Plugin  plug-in unit
    .
  • obtain  K8s Kubeconfig, See documentation  
    obtain  Kubeconfig  file
    .
  • stay  
    pig
      Under the namespace , Find the workload  
    pig-auth
      Right click and choose  
    Dev Config
     ( Development configuration )
null
  • Copy the following configuration file to  
    Dev Config
      in .
# Deployment Name
name: pig-auth
serviceType: deployment
containers:
 # Deployment  Main container name
  - name: auth
    dev:
     #  Developing mirroring , The image contains  Java Maven  Environmental Science
      image: registry.cn-hangzhou.aliyuncs.com/zqqq/maven:3.8.6-openjdk-8
      #  The default terminal is  bash
      shell: bash
      # Rainbond  Provided  StorageClass Name
      storageClass: rainbondvolumerwx
      #  Configure development container resources
      resources:
        limits:
          memory: 4096Mi
          cpu: "2"
        requests:
          memory: 2048Mi
          cpu: "1"
      persistentVolumeDirs:
       # Maven  Depend on the package cache path , coordination  storageClass  Eat together
        - path: /root/.m2/repository
          capacity: 10Gi
      command:
        #  One click start command , Install dependent packages and start  pig-auth  Sub module
        run:
          - mvn
          - install
          - '&&'
          - mvn
          - spring-boot:run
          - -pl
          #  Specify sub module startup
          - pig-auth
        #  Onekey  Debug  command , Install dependent packages and  Debug pig-auth  Sub module
        debug:
          - mvn
          - install
          - '&&'
          - mvn
          - spring-boot:run
          - -pl
          #  Specify sub module startup
          - pig-auth
          # Java Debug  command
          - -Dspring-boot.run.jvmArguments=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
      debug:
        #  Remote port , Corresponding Debug In the command  address=5005
        remoteDebugPort: 5005
        #  choice  Java  Language
        language: java
      #  Thermal loading
      hotReload: true
      #  File synchronization
      sync:
        type: send
        mode: gitIgnore
        deleteProtection: true
      #  Port forwarding , Forward... In the container 3000 Port to local 3999
      portForward:
        - 3999:3000

Onekey  Run

  • Right click workload  
    pig-auth
     .
  • choice  Remote Run.
  • Nocalhost  Will automatically enter  DevMode  And implement  Remote Run.
null

Onekey  Debug

  • Right click workload  
    pig-auth
     .
  • choice  Remote Debug.
  • Nocalhost  Will automatically enter  DevMode  And implement  Remote Debug.
  • Put a breakpoint in the code , Initiate request , Get into  IDE Debug  Pattern .
null

Persistent configuration

At development time , Most of the files we want to persist are  
Dependency package
 
journal
, This article also caches  Java  The dependency package of .
rainbondvolumerwx
  yes  Rainbond  The storage class provided by default , After filling in the following configuration, it will be automatically created under the current namespace  PVC, as follows :
storageClass: rainbondvolumerwx     
persistentVolumeDirs:
  - path: /root/.m2/repository
    capacity: 10Gi

null

Container resource limit

Limit the resources of the development container , Quota can maximize the resource utilization of the server , You can modify it through the following development configuration :
resources:
  limits:
    memory: 4096Mi
    cpu: "2"
  requests:
    memory: 2048Mi
    cpu: "1"

Port forwarding

Forward container port to local , You can modify it through the following development configuration :
portForward:
  - 3999:3000   #  Forwarding container  3000  Port to local  3999  port

Last

Of course  Nocalhost  You can debug multiple microservices at the same time , In the same way, you only need to modify  Deployment Name  and  Containers Name  And the sub module of microservice .
Nocalhost  There are also some things that are not mentioned in the development configuration article , such as : Development environment variables 、 Two modes of file synchronization  
pattern
 
gitignore
  wait , also  Nocalhost  Support for multiple languages ,Java  It's just one of them , Guys can explore on their own .
Nocalhost + Rainbond  Let's develop 、 More efficient deployment 、 convenient .

About Rainbond

*
Rainbond  The core 100% Open source , Easy to use , You don't need to understand containers and Kubernetes, Support management of various Kubernetes colony , Provide full lifecycle management for enterprise applications .
 Github:https://github.com/goodrain/rainbond
  Official website :https://www.rainbond.com
  Wechat group : Focus on  Rainbond  The official account is joined by the technical exchange group.
  Nail group : Please search for nail group number  31096419
*

原网站

版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071655470648.html