wind-c / comqtt

A lightweight, high-performance go mqtt server(v3.0|v3.1.1|v5.0) supporting distributed cluster
MIT License
972 stars 53 forks source link

谢谢大佬,我还没测出跨集群效果,单集群效果ok的,请教一个问题,你连接redis有没有出现Error: Connection reset by peer?因为跨集群只用一个redis服务,我从节点连主redis服务一直报 Connection reset by peer这个错误。。。搞了好久。感觉就差这一步了。 #12

Closed skygp closed 1 year ago

skygp commented 1 year ago
    谢谢大佬,我还没测出跨集群效果,单集群效果ok的,请教一个问题,你连接redis有没有出现Error: Connection reset by peer?因为跨集群只用一个redis服务,我从节点连主redis服务一直报 Connection reset by peer这个错误。。。搞了好久。感觉就差这一步了。

Originally posted by @skygp in https://github.com/wind-c/comqtt/issues/9#issuecomment-1278738689

wind-c commented 1 year ago

你说的单集群是指单机上跑几个节点吗?

skygp commented 1 year ago

是的

wind-c commented 1 year ago
    谢谢大佬,我还没测出跨集群效果,单集群效果ok的,请教一个问题,你连接redis有没有出现Error: Connection reset by peer?因为跨集群只用一个redis服务,我从节点连主redis服务一直报 Connection reset by peer这个错误。。。搞了好久。感觉就差这一步了。

Originally posted by @skygp in https://github.com/wind-c/comqtt/issues/9#issuecomment-1278738689

redis.conf中

bind 127.0.0.1 需要注释掉。因为这个是设置redis服务器只在本地监听,从而会拒绝来自外网的监听,同时: protected-mode no 去掉注释,设置为 no,表明不已保护模式运行。

skygp commented 1 year ago

这两个参数我都配过了,就是会报Error: Connection reset by peer 我的客户端redis是已经连接上另一台的redis服务,就是连接上后,我在客户端输入keys * 就报Error: Connection reset by peer 。可能就是我的云机器出问题了,已解决。

skygp commented 1 year ago

大佬,comqtt单机mqtt模式最大支持多少连接?

skygp commented 1 year ago

大佬,您之前配置的跨集群用例,17.0.207.19是内网ip吧,如果是跨集群是连不通的。我conf1.conf配置外网ip,conf2.conf去连接上了,但是提示 2022/10/21 10:16:17 [INFO] memberlist: Suspect co-001 has failed, no acks received 2022/10/21 10:16:20 [INFO] memberlist: Suspect co-001 has failed, no acks received 2022/10/21 10:16:21 [INFO] memberlist: Marking co-001 as failed, suspect timeout reached (0 peer confirmations)

然后我又测了另外一种情况,conf1.conf: bind-addr 绑定外网ip,结果提示bind: cannot assign requested address 就是我按照您给的跨集群配置案例没有配出效果

wind-c commented 1 year ago

我的集群配置示例是三台机器用内网地址通信,配置文件中的ip都是内网ip,外网地址对外提供服务。你说的跨集群是指什么?

skygp commented 1 year ago

我现在是有两台阿里云的服务器,第一台memberlist填公网ip,bind-addr填0.0.0.0。 第二台的memberlist填的是第一台的公网ip,当我这样填就报memberlist: Suspect co-001 has failed, no acks received。如果我填内网ip就访问不了了。

wind-c commented 1 year ago

bind-addr不要填0.0.0.0,正确做法是填本机内网ip,另外内网机器间没有端口屏蔽吧,机器间内网ip:port是通的吗?肯定是配置问题,如果还搞不定,我帮你远程看看。

skygp commented 1 year ago

现在就是我第一台bind-addr配内网ip,memberlist也是配内网ip。然后第二台memberlist:配第一台的内网ip,这样配置是访问不了第一台内网ip的。 就是机器间内网ip:port是curl不通的,这个怎么解决呢?还有机器内网ip间都不能ping通。 另外如果我第二台memberlist配置第一台的公网IP就有报memberlist: Suspect co-001 has failed, no acks received。

最后总结,就是我不清楚您之前那个案例机器间内网ip通信是怎么配的,因为我在第一台机器ping第二台内网ip是提示timeout的

skygp commented 1 year ago

我现在云机器分布式是阿里云有一台,腾讯云有一台,我用这两台测试的

skygp commented 1 year ago

大佬,这个怎么支持SSL证书访问

wind-c commented 1 year ago

我现在云机器分布式是阿里云有一台,腾讯云有一台,我用这两台测试的

跨云,内网地址肯定不通啊。你用同云的机器就ok了。

skygp commented 1 year ago

大佬,怎么支持websockets+ssl访问,在微信小程序中就必须要加ssl的

skygp commented 1 year ago

我就说嘛,多谢了

wind-c commented 1 year ago

大佬,怎么支持websockets+ssl访问,在微信小程序中就必须要加ssl的

和go tcp&websocket tls一样用法,配置RSA,参考examples/tls