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