Liubsyy / HotSecondsIDEA

HotSeconds是一款Java远程热部署的插件,可实现秒级一键化热更新。插件分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端javaagent热更新插件),可以热更新java和常用配置文件,也支持常用框架(Spring,MyBatis)的热更新,相对传统部署可节省大量时间提高开发效率。
GNU General Public License v2.0
369 stars 48 forks source link

remote_ip和connection之间的关系 #46

Closed Ess24 closed 9 months ago

Ess24 commented 10 months ago

hot-seconds.xml中有

<connections>
    <connection>
        <secret>   </secret>
        <ip>  </ip>
        <port>  </port>
    </connection>
</connections>

其中 和connect中的 有什么关系,远程ip指定的是需要更改的界面对应的ip地址吗?指定了之后好像没什么作用

Liubsyy commented 10 months ago

connections是多远程连接源,是下拉ip列表展示的
remote_ip只是connections中的一个,作为点击头像开关默认连接的远程ip,你可以直接用UI界面操作,UI界面操作最终生效的就是配置文件。 当有多个远程连接的时候,会有多个tab框,优先连接tab框上面的,如果tab框没有连接源,就默认读取remote_ip的内容。

Ess24 commented 9 months ago

如果将服务打包编译放进linux中,远程路径是不是/home/hotsecond-web-1.0-SNAPSHOT.jar这样子写就好还是有什么说法呢

Liubsyy commented 9 months ago

热更新class文件不用写路径也能热更新,我在文档里有提到的

Ess24 commented 9 months ago

嗯嗯,那如果有两台服务器的情况下同时运行这个项目,他们分别有ip地址(a和b)在不配置的情况下,a这边进行了热更,b那边也能同步热更吗(b访问的是自己的ip)

Liubsyy commented 9 months ago

不会,每次只会热更一个连接源(secret+ip+port确定一个连接源),也就是一个进程,如果想都热更新,需要连接多个服务器,在HotSecondsClient控制台切换不同的tab连接源,进行多次热更新,这种操作方式和IDEA远程debug是一样的,远程debug也只是每次操作一台机器

Ess24 commented 9 months ago

那hot-seconds中配置remote_ip这个配置为非本机的ip会报错报connection refused,这是为什么类

Liubsyy commented 9 months ago

本机和远程ip+port不通,你测试本地连接程端口是否是通的

Ess24 commented 9 months ago

我的虚拟机地址是192.168.56.101,然后尝试在本机上测试联通,telnet 192.168.56.101:9000 是成功的,hot-seconds中配置remote_ip中配置的是本机的ip的话也是可以成功。

Liubsyy commented 9 months ago

具体报错呢?你在虚拟机上运行hostname -i 看看ip是多少

Ess24 commented 9 months ago

虚拟机上运行hostname -i是127.0.0.1,但是 QQ截图20231123112908

Liubsyy commented 9 months ago

在虚拟机上加上jvm参数-Djava.rmi.server.hostname=远程ip,我在常见问题里面有提到的https://github.com/Liubsyy/HotSecondsIDEA/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%92%8C%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88#3-docker%E5%AE%B9%E5%99%A8%E6%88%96%E8%80%85%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98

Ess24 commented 9 months ago

那我可以怎么用命令的方式来启动热更呢

Liubsyy commented 9 months ago

那我可以怎么用命令的方式来启动热更呢

没太明白你的意思,启动热更添加jvm参数就行了

Ess24 commented 9 months ago

就是如果我不用插件,我可以在终端输入命令,然后实现热更新吗

Liubsyy commented 9 months ago

就是如果我不用插件,我可以在终端输入命令,然后实现热更新吗

我没有做终端命令行工具,不过终端输入命令热更新的方式可以用arthas

Ess24 commented 9 months ago

虚拟机跟本地都可以连接了,本地连接成功是 image 为什么虚拟机上会是 image 虚拟机上不应该是跟本地一样写的当前ip吗比如192.168.56.101这样子?

Liubsyy commented 9 months ago

Server打印的是所连接的客户端ip