首页 > 其他分享 >ray集群多节点在NAT环境下的部署(ray两个节点在不同wifi下连接上后丢失心跳掉线)

ray集群多节点在NAT环境下的部署(ray两个节点在不同wifi下连接上后丢失心跳掉线)

时间:2024-12-04 11:35:49浏览次数:11  
标签:掉线 -- ip start address 节点 ray

描述

ray在内网完美运行,但是work节点和head节点在不同wifi下丢失心跳,8265面板检测最初可以连接并alive 但是很快就变为dead

环境

windows
python3.10.14
ray-3.0.0.dev0-cp310-cp310-win_amd64

客户端(work节点) 启动项

ray start --address=12.34.567.89:6379 --node-ip-address=98.765.43.21

服务器端(head节点)启动项

ray start--head --port=6379 --dashboard-host=0.0.0.0 --dashboard-port=8265 --node-ip-address=12.34.567.89

node-ip-address可以强行指定本机ip

分析

丢失心跳的原因是因为
客户端应答心跳时,目的地址错误,应为服务器端的公网地址而非服务器端所在的内网地址
使用wireshark抓包抓黑色的错误包,发现客户端企图用服务器端所在的内网回应心跳,这必然是回复不到的。

但是--address对应的ip必须填内网而不是公网(head节点指定nodeip)不然无法启动,因为填公网ip无法回环去找自己,但是如果填内网ip客户端又找不到心跳
或者直接把裸机暴露给公网,不走所谓NAT
或者使用代理服务器,让他以为自己是在内网

参考

from ray.scripts.scripts import start, stop
ctx = start.make_context('start',
                                 [
                                     '--address', f'33.44.55.66:6379',
                                     '--resources', f'{json.dumps(custom_resources)}',
                                     '--node-name', name,
                                     # '--node-ip-address', "11.22.33.44",
                                 ],
                                 )
        result = start.invoke(ctx)

ray github issue 45179

标签:掉线,--,ip,start,address,节点,ray
From: https://www.cnblogs.com/d37eirin/p/18585884

相关文章

  • 基于STM的环境监测系统(节点+云服务器存储+QT界面设计)
    文章目录1.项目简介2.项目成果展示3.源码及软件资源获取4.项目文章更新1.项目简介本项目实现的是环境监测系统,包括节点数据采集,云服务器部署,以及QT上位机界面设计,具体框图可见下图节点端:采用STM32控制芯片,结合各类传感器实现对环境中气体数据的采集,连接oled屏进......
  • Java中ArrayList
    文章目录ArrayListarrayList的自动扩容机制Fail-Fast操作ArrayListList接口特征:有序性:list中的元素是按照他们被添加的顺序存储的,可以通过索引来访问list中的元素。可重复性:list中可存储重复的元素索引访问:可以根据元素的索引值来访问list中的元素。支持迭......
  • 牛客---HJ48 从单向链表中删除指定值的节点(用ArrayList模拟链表,因为方便查找操作)
    示例代码importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;//注意类名必须为Main,不要有任何packagexxx信息publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);......
  • Java入门:21.System类,Runtime类,Arrays类的常用方法,二分查找算法
    1System类System.exit(0); //手动关闭应用程序​System.currentTimeMillis();//获得当前系统时间的毫秒数​System.out;//获得一个打印流,可以实现控制台打印System.out.print();//打印内容(不换行)System.out.println();//打印内容,并换行System.out.printf();//......
  • 二叉树の节点x的双亲节点
    算法思想:通过一个栈来辅助非递归地遍历二叉树。先向左遍历二叉树,将经过的节点依次入栈,并标记其tag为0(表示左孩子未遍历完),直到找到目标节点或者左子树为空。若找到目标节点,就输出栈顶节点的数据作为父节点并返回。若未找到且栈顶节点的右子树已遍历(tag为1),则弹出栈顶节点。若栈......
  • 【数据结构】ArrayList与顺序表
    ArrayList与顺序表1.线性表2.顺序表2.1接口的实现3.ArrayList简介4.ArrayList使用4.2ArrayList常见操作4.3ArrayList的遍历4.4ArrayList的扩容机制5.ArrayList的具体使用5.1杨辉三角5.2简单的洗牌算法6.ArrayList的问题及思考【本节目标】线性表顺序......
  • 操作系统中 索引节点号和磁盘块号之间的关系
    目录索引节点(inode)磁盘块(Block)关系1.索引节点指向磁盘块2.处理大文件3.文件碎片处理4.文件删除与回收总结在操作系统中,索引节点号(inodenumber)和磁盘块号(blocknumber)是文件系统管理文件数据存储位置的重要组成部分。它们之间的关系主要体现在如何定位和访问文件的......
  • Type definition error: [array type, component type: [simple type, class java.lan
     详细报错信息:Typedefinitionerror:[arraytype,componenttype:[simpletype,classjava.lang.String]];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinitionException:Cannotconstructinstanceof`java.lang.String[]`:noString-argu......
  • Java面试要点49 - Java ArrayList与LinkedList性能对比
    文章目录一、引入二、底层结构对比2.1ArrayList的实现原理2.2LinkedList的实现原理三、性能测试实战3.1测试代码实现四、性能特征分析4.1顺序添加性能4.2随机访问性能五、实际应用场景示例5.1数据缓存实现5.2消息队列实现六、总结一、引入在Java程序开......
  • Java面试要点50 - List的线程安全实现:CopyOnWriteArrayList
    文章目录一、引入二、实现原理解析2.1写时复制机制2.2读写分离策略三、性能测试分析四、应用场景分析4.1事件监听器管理4.2缓存实现五、最佳实践建议5.1性能优化技巧5.2常见陷阱规避总结一、引入在并发编程中,线程安全的集合类扮演着重要角色。CopyOnWri......