Idea Intellij 远程开发调试

一、背景

在构建MiniOB开发环境时需要Linux环境,另外结合分布式系统,利用较好的通信,萌发了远程开发的想法;实际上远程部署、开发在很久之前有过想法(大约刚开始学SpringBoot进行部署软件时,反复地本地开发在上传远程部署)。欲善其事,必先利其器,Jetbrains系列IDE是极具优秀体验的工具,也是我十分青睐的,自21年1月安装了20版之后,由于考研等因素,一直没有更新,今天对Idea、Clion进行了升级,并体验了其远程开发(Beta)的新特性。

优点:

  • 利用远程服务器的开发环境(例如高CPU、内存)、资源(适合本地性能较差的试用)
  • 便于开发、部署
  • 避免环境不一致问题、便于协作

缺点:

  • 增大开销(在我刚开始尝试时,阿里云服务器瞬间SSH访问不了,经排查CPU、内存资源瞬间飙升)
  • 协作冲突等(由于将项目放在远程服务器,若共同去开发,应该会涉及冲突问题?,借鉴git管理版本,还没进行多人协同远程开发,暂且个人猜测)

二、简单尝鲜

准备工作

  • 远程服务器\Docker\WSL等(并配置IP,保证连通性)
  • 本地21年版本后的开发工具Idea Intelij(本人采用的22.2.3版本)

具体步骤

  1. 远程创建项目文件(test-project)
    Idea Intellij 远程开发调试_第1张图片
  2. IDE打开远程开发,并进行SSH连接配置(本人采用的密码认证,方便一点)
    Idea Intellij 远程开发调试_第2张图片
  3. 安装远程开发的相关服务插件(具有服务端和客户端,会在远程也进行相关的下载安装),并打开远程的工程目录
    Idea Intellij 远程开发调试_第3张图片
  4. 进行开发,然后就可以打开文件,像在本地开发一样进行开发了,本地相对于一个client,远程一个server相互进行通信(基于ssh),本地进行修改,则可传到远程,类似观察者模式的设计。
    Idea Intellij 远程开发调试_第4张图片

三、基本原理

在进行简单尝试过程中,通过Idea提示的系列信息,我们可以知道该方式实现应该采用的是 C\S模型,远程服务器是按照Jetbrains的Server端,本地则是Client端,并通过SSH的通信方式保持双方的同步。为了较为清晰地理解,特定去官网大致看了看。
这是远程开发的官方介绍

Idea Intellij 远程开发调试_第5张图片
Gateway 将安装远程 IDE 后端和本地瘦客户端,并通过 SSH 将其连接。 首先,它会建立 SSH 连接。 指定主机和用户名并提供密钥或密码后,Gateway 将连接到远程服务器。 它会检查是否已经安装了 IDE 后端,如果没有,则会从 jetbrains.com 下载一个新的版本。

启动 IDE 后端前,Gateway 需要知道项目目录。 您可以浏览远程文件系统并选择一个目录,如果项目尚不可用,您可以使用内置终端从版本控制系统中克隆项目。

选择 IDE 版本和项目目录后,Gateway 会将 IDE 下载到远程服务器、解压缩并启动,同时加载项目。 然后它会在本地下载、缓存和启动匹配版本的 JetBrains Client。

四、反思总结

除了关注技术之外,也可去看看工具的发展,提升开发效率,从工具链的角度思考最新技术,例如jetbrains也推出了 DevOps的开发工具,也可进行一些常识,思维不要固守。

你可能感兴趣的:(问题解决&思考记录,intellij-idea,服务器,java)