簡體   English   中英

重新連接到遠程集群

[英]redisson connecting to remote cluster

我已經創建了一個redis集群,它本身可以工作,但是我無法將客戶端連接到它。

我正在使用redisson通過以下代碼連接到它

Config config = new Config();
config.setUseLinuxNativeEpoll(false);
config.useClusterServers().addNodeAddress(redisURL.split(","));
RedissonClient redisson = Redisson.create(config);

其中redisURL是csv,格式為: redis://<external-ip>:7000,redis://<external-ip>:7001但群集中有所有6個節點。

有趣的是,群集使用其本地地址(它們位於同一子網中)連接到自身,但是它們無法通過各自的外部ip找到彼此。

當redisson嘗試獲取集群配置時,這反過來會帶來問題。

15:53:51,035 INFO  [org.redisson.cluster.ClusterConnectionManager] (ServerService Thread Pool -- 31) Redis cluster nodes configuration got from /<external-ip>:7001:
6df5ebaf45cbbd36213f482a26e99e14e3e86fa5 <internal-ip>:7000@17000 master - 0 1516632829096 2 connected 5461-10922
7724d373393edf7f38ae6253ce248f75f398a1c6 <internal-ip>:7001@17001 slave e5dc7e472410e575a0dc672ead79b54828897ce3 0 1516632830099 6 connected
649582188b2c22b472388c27550467fe97522e3f <internal-ip>:7001@17001 myself,master - 0 1516632828000 1 connected 0-5460
792d30f7c2eedd80d99af5cc49d7797d6b29bdf3 <internal-ip>:7002@17002 slave 6df5ebaf45cbbd36213f482a26e99e14e3e86fa5 0 1516632828093 4 connected
349d846c493fcc709d31c657321a48e01ae0b34e <internal-ip>:7001@17001 slave 649582188b2c22b472388c27550467fe97522e3f 0 1516632827000 5 connected
e5dc7e472410e575a0dc672ead79b54828897ce3 <internal-ip>:7000@17000 master - 0 1516632828000 3 connected 10923-16383

15:54:01,113 ERROR [org.redisson.cluster.ClusterConnectionManager] (redisson-netty-1-5) Can't connect to master: redis://<internal-ip>:7000 with slot ranges: [[10923-16383]]
15:54:01,121 ERROR [org.redisson.cluster.ClusterConnectionManager] (redisson-netty-1-6) Can't connect to master: redis://<internal-ip>:7001 with slot ranges: [[0-5460]]
15:54:01,127 ERROR [org.redisson.cluster.ClusterConnectionManager] (redisson-netty-1-1) Can't connect to master: redis://<internal-ip>:7000 with slot ranges: [[5461-10922]]

那么,有沒有辦法告訴Redisson將內部IP映射到預先配置的外部IP? 或其他可以解決這個問題的東西? 最好不更改網絡配置。

構建Redis集群時遇到了相同的問題。 我使用Redisson連接Redis集群,使用Redis客戶端程序(如(Redis Desktop Manager)連接到我的Redis集群,都可以正常連接,但是當Redisson程序初始化時,它提示連接超時:172.18.202.111/172.18 .202.111:7000。

在查閱文檔之后,我發現我的redis集群通信需要其他端口17000 17001 17002,(+ 10000)

您可能需要打開相關的端口訪問限制。 如果使用通過執行CLUSTER nodes命令返回的節點Ip包含Intranet Ip,則需要修改Redis群集自動生成的nodes.conf文件,以將Intranet IP更改為Extranet Ip。

例如:053420032000043aa9983d5b30e09c83258b3186內部網IP地址:我自己,主服務器-連接001的0-5460 0534200320000430431998998ad3d5b30e09258b3186您的公共網絡IP地址:我自己,主服務器6379-連接001的0-5460

由於redis配置文件已經說明集群是一個自動配置文件,通常不需要對其進行修改。 但是有時,例如,在我的情況下,我只有一個Intranet卡,並且估計公共網絡的IP地址將通過NAT轉換為私有地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM