我正在尝试创建restcomm集群:sip-balancer +一些restcomm实例。但我无法连接restcomm节点和sip-loadbalancer。
我使用了本教程 - http://docs.telestax.com/sip-servlets-clustering-high-availability/但是没有任何结果。
似乎应该是两个步骤
path-name
属性
standalone/configuration/standalone-sip.xml
org.mobicents.ha.javax.sip.BALANCERS
添加到
standalone/configuration/mss-sip-stack.properties
据我所知,节点和负载均衡器使用rmi作为通道。我看到(我使用netstat)服务器侦听端口2000并且节点建立与它的连接。
但是当我尝试从sip客户端使用loadbalancer时,它返回“错误500 - 没有可用节点”。 我也使用远程调试 - 节点列表为空。
我错过了什么吗?
P.S。我在同一台机器上使用了docker restromm实例和sip-loadbalancer。
感谢,
答案 0 :(得分:0)
所以我找到了我的问题。
根据restcomm节点上的日志文件 - 它无法通过RMI连接到balancer。
连接错误非常奇怪 - Connection refused to host: 127.0.0.1
,有时Connection refused to host: 127.0.1.1
昨天我厌倦了指定java.rmi.server.hostname
,但它没有帮助我
今天我创建了小型RMI客户端到平衡器,它可以在我的本地机器上运行(平衡器也托管在它上面)。但是这个应用程序确实可以从虚拟机运行所以我在代码中添加了更多日志,并找到了:
之后我为我的sip-balancer指定了externalHost
和public-ip
,并使用127.0.1.1
发现问题 - ubuntu使用此“本地” IP地址作为“机器名称”。
你可以在/etc/hosts
找到它。
sip-balancer(java应用程序)将其作为服务端点的IP地址
我的修复是change 127.0.1.1 to 127.0.0.1
中的/etc/hosts
。之后,sip-balancer为远程对象提供机器的真实IP地址。
结论:我的问题 - 错误的操作系统:)
常见解决方案:开发人员应检查地址类型,不要使用环回地址。