当前位置: 首页 > 知识库问答 >
问题:

亚马逊AWS上Hazelcast的连接问题

夏侯弘量
2023-03-14

我使用的是Hazelcast v3。6在两台amazon AWS虚拟机上(不使用hazelcast的AWS特定设置)。连接应该通过TCP/IP连接设置(而不是多播)工作。我已在虚拟机上打开5701-5801地址进行连接
我曾尝试在两台虚拟机上使用iperf,通过这两台虚拟机,我可以看到一台虚拟机上的客户机连接到另一台虚拟机上的服务器(当我切换iperf的客户机-服务器设置时,反之亦然)。

当我在不同的虚拟机上启动两个Hazelcast服务器时,连接没有建立。日志声明和hazelcast。xml配置如下(我不使用Hazelcast的编程设置)。我已更改以下IP地址:

20160401-16:41:02.812 [cached2] InitConnectionTask INFO - [45.46.47.48]:5701 [dev] [3.6] Connecting to /22.23.24.25:5701, timeout: 0, bind-any: true
20160401-16:41:02.812 [cached3] InitConnectionTask INFO - [45.46.47.48]:5701 [dev] [3.6] Connecting to /22.23.24.25:5703, timeout: 0, bind-any: true
20160401-16:41:02.813 [cached1] InitConnectionTask INFO - [45.46.47.48]:5701 [dev] [3.6] Connecting to /22.23.24.25:5702, timeout: 0, bind-any: true
20160401-16:41:02.816 [cached1] InitConnectionTask INFO - [45.46.47.48]:5701 [dev] [3.6] Could not connect to: /22.23.24.25:5702. Reason: SocketException[Connection refused to address /22.23.24.25:570
2]
20160401-16:41:02.816 [cached1] TcpIpJoiner INFO - [45.46.47.48]:5701 [dev] [3.6] Address[22.23.24.25]:5702 is added to the blacklist.
20160401-16:41:02.817 [cached3] InitConnectionTask INFO - [45.46.47.48]:5701 [dev] [3.6] Could not connect to: /22.23.24.25:5703. Reason: SocketException[Connection refused to address /22.23.24.25:570
3]
20160401-16:41:02.817 [cached3] TcpIpJoiner INFO - [45.46.47.48]:5701 [dev] [3.6] Address[22.23.24.25]:5703 is added to the blacklist.
20160401-16:41:02.834 [cached2] TcpIpConnectionManager INFO - [45.46.47.48]:5701 [dev] [3.6] Established socket connection between /45.46.47.48:51965 and /22.23.24.25:5701
20160401-16:41:02.849 [hz._hzInstance_1_dev.IO.thread-in-0] TcpIpConnection INFO - [45.46.47.48]:5701 [dev] [3.6] Connection [Address[22.23.24.25]:5701] lost. Reason: java.io.EOFException[Remote socket 
closed!]
20160401-16:41:02.851 [hz._hzInstance_1_dev.IO.thread-in-0] NonBlockingSocketReader WARN - [45.46.47.48]:5701 [dev] [3.6] hz._hzInstance_1_dev.IO.thread-in-0 Closing socket to endpoint Address[54.89.161.2
28]:5701, Cause:java.io.EOFException: Remote socket closed!
20160401-16:41:03.692 [cached2] InitConnectionTask INFO - [45.46.47.48]:5701 [dev] [3.6] Connecting to /22.23.24.25:5701, timeout: 0, bind-any: true
20160401-16:41:03.693 [cached2] TcpIpConnectionManager INFO - [45.46.47.48]:5701 [dev] [3.6] Established socket connection between /45.46.47.48:60733 and /22.23.24.25:5701
20160401-16:41:03.696 [hz._hzInstance_1_dev.IO.thread-in-1] TcpIpConnection INFO - [45.46.47.48]:5701 [dev] [3.6] Connection [Address[22.23.24.25]:5701] lost. Reason: java.io.EOFException[Remote socket 
closed!]

Hazelcast配置的一部分

<?xml version="1.0" encoding="UTF-8"?>
<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.6.xsd"
           xmlns="http://www.hazelcast.com/schema/config"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <group>
        <name>abc</name>
        <password>defg</password>
    </group>

    <network>
        <port auto-increment="true" port-count="100">5701</port>
        <outbound-ports>
            <ports>0-5900</ports>
        </outbound-ports>
        <join>
            <multicast enabled="false">
                <!--<multicast-group>224.2.2.3</multicast-group>
                <multicast-port>54327</multicast-port>-->
            </multicast>
            <tcp-ip enabled="true">
                <member>22.23.24.25</member> 
             </tcp-ip>
        </join>
        <interfaces enabled="true">
            <interface>45.46.47.48</interface>
        </interfaces>
        <ssl enabled="false" />
        <socket-interceptor enabled="false" />
        <symmetric-encryption enabled="false">
            <algorithm>PBEWithMD5AndDES</algorithm>
            <!-- salt value to use when generating the secret key -->
            <salt>thesalt</salt>
            <!-- pass phrase to use when generating the secret key -->
            <password>thepass</password>
            <!-- iteration count to use when generating the secret key -->
            <iteration-count>19</iteration-count>
        </symmetric-encryption>
    </network>

    <partition-group enabled="false"/>

iperf服务器和客户端日志语句

Server listening on TCP port 5701
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 22.23.24.25, TCP port 5701
TCP window size: 1.33 MByte (default)
------------------------------------------------------------
[  5] local 172.31.17.104 port 57398 connected with 22.23.24.25 port 5701
[  4] local 172.31.17.104 port 5701 connected with 22.23.24.25 port 55589
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec   662 MBytes   555 Mbits/sec
[  4]  0.0-10.0 sec   797 MBytes   666 Mbits/sec


Server listening on TCP port 5701
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local xxx.xx.xxx.xx port 5701 connected with 22.23.24.25 port 57398
------------------------------------------------------------
Client connecting to 22.23.24.25, TCP port 5701
TCP window size: 1.62 MByte (default)
------------------------------------------------------------
[  6] local 172.31.17.23 port 55589 connected with 22.23.24.25 port 5701
[ ID] Interval       Transfer     Bandwidth
[  6]  0.0-10.0 sec   797 MBytes   669 Mbits/sec
[  4]  0.0-10.0 sec   662 MBytes   553 Mbits/sec

注意:我忘了提到我可以从hazelcast客户端连接到服务器,也就是说,当我使用hazelcast客户端连接到单个hazelcast服务器节点时,我可以很好地连接

共有1个答案

申炳
2023-03-14

hazelcast将包含0的出站端口范围解释为“使用临时端口”,因此

 类似资料:
  • 我能够从EC2实例连接到VPC中的ElastiCache Redis实例。但我想知道是否有办法连接到Amazon EC2实例之外的ElastiCache Redis节点,例如从我的本地开发设置或其他供应商提供的VPS实例。 当前在我的本地设置中尝试时: 我只在一段时间后才会暂停。

  • 好的,我在 AWS 中创建一个实例,并遵循手册、视频等中的所有要点。但是我收到“无法连接到服务器,因为防火墙,关闭等” 我配置了以下内容: 实例: 私有IP OK 状态:正在运行 检查:一切正常 公共DNS:好的 公共ip:好的 弹性IP附加:好的 已连接网络接口(并且该网络具有安全组、ips等) 安全组(非默认): 入境的 类型协议端口范围源 RDP TCP 3389 0.0.0.0/0 固态混

  • 亚马逊云 图 1.20.2.1 - AWS AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT

  • 我试图通过AWS SES发送一封带有SMTP的电子邮件,我正在使用这个

  • 我的Android应用程序中有一个与亚马逊SNS服务相关的问题。我正在使用亚马逊SNS推送服务。请查看此链接http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePush.html有关亚马逊SNS服务的更多详细信息,请参阅。 我像在Amazon samples http://docs . AWS . Amazon . com/SNS/latest/DG

  • 我的问题是,如果出于某种原因,一些格式错误的数据被生产者放到碎片上,当Lambda函数提取它时,它会出错,然后不断地重试,会发生什么?这意味着该错误将阻止该特定碎片的处理24小时。 处理这样的应用程序错误的最佳实践是将问题包装在自定义错误中,并将此错误与所有成功处理的记录一起发送到下游,让使用者处理它吗?当然,如果出现无法恢复的错误,程序就像空指针一样崩溃,这仍然没有帮助:在接下来的24小时内,我