IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> spring boot websocket服务当做跳板机实现远程jvm remote debug -> 正文阅读

[网络协议]spring boot websocket服务当做跳板机实现远程jvm remote debug

功能

本地IDE可以通过连接B端管理系统实现对远程线上java服务进行调试

背景

很多时候线上服务出现了故障,希望能够对线上服务器进行本地调试。

  • jrdwp实现了这个功能,原理其实很简单:
    1. 本地IDE(tcp连接)
    2. 本地jrdwp client(用tcp协议和ide通信,websocket和远端nginx通信)
    3. 远端ngiinx(代理websocket)
    4. 远端jrdwp server (提供websocket服务,并且用tcp和远端java服务通信)
    5. 远端java服务
  • 然而没有权限接触公司的nginx,但是有B端服务,系统是支持websocket协议,所以可以使用spring boot websocket服务代替远端jrdwp server服务。
    • 本地IDE —》 本地jrdwp client —》网关 —》 spring boot服务 —》 远端java服务

实现步骤

  1. 改造jrdwp代码

    • 只保留client代码
    • 支持通过ws-schema启动参数配置wss协议
    • 简化权限认证,通过参数配置token即可
  2. Spring boot server服务启动websocket服务

    • 启动websocket服务,接受来自websocket client的长连接
    • 接受到客户端连接后,通过参数和远端java服务创建一个tcp连接
    • websocket服务充当数据中转桥梁
  3. Spring boot server提供一个返回bash命令的接口

    • 使用者只需要在本机执行一条命令,执行从接口拿到的bash命令
    • bash命令包括以下内容
      • 下载jrdwp执行文件
      • 赋予jrdwp执行权限
      • 拼接好参数启动jrdwp client

demo

具体步骤可以看demo源码

  1. 下载源码
git clone https://github.com/angryfang/jrdwp.git
cd jrdwp
  1. 进入java目录, 启动过一个远程demo,启动一个spring boot websocket服务
#进入服务端目录
cd server
mvn clean package -DskipTests
#启动远端需要测试的服务,开放了10036端口做为jdwp调试端口, 启动8081端口做为服务
./start-remote.sh
#启动调试服务端,websocket服务使用8080端口
./start-server.sh
  1. 进入go目录,启动jrdwp客户端
#进入代码的go目录
cd go
#编译生成jrdwp运行程序
go build jrdwp.go
#开放一个本地8876端口给到idea调试
./start-client

4.启动IDE调试

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 23:04:40  更:2022-03-15 23:07:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:41:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码