无法从.net hazelcast客户端本地连接hazelcast IMDG

无法从.net hazelcast客户端本地连接hazelcast IMDG,hazelcast,Hazelcast,我已经在本地下载了hazelcast。但当我试图从.net客户端连接它时,它无法连接。 以下异常显示在Hazecast控制台中 om.hazelcast.internal.nio.tcp.TcpIpConnection 警告:[10.253.200.102]:5701[dev][4.0.1]连接[id=7,/10.253.200.102:5701->/10.253.200.102:56020,限定符=null,端点=null,活动=false,连接类型=NONE]已关闭。原因:连接异常[id=7

我已经在本地下载了hazelcast。但当我试图从.net客户端连接它时,它无法连接。 以下异常显示在Hazecast控制台中

om.hazelcast.internal.nio.tcp.TcpIpConnection 警告:[10.253.200.102]:5701[dev][4.0.1]连接[id=7,/10.253.200.102:5701->/10.253.200.102:56020,限定符=null,端点=null,活动=false,连接类型=NONE]已关闭。原因:连接异常[id=7,/10.253.200.102:5701->/10.253.200.102:56020,限定符=null,端点=null,活动=true,连接类型=NONE],线程=hz.epic_northcutt.IO.thread-in-0 java.lang.IllegalStateException:未知协议:CB2 在com.hazelcast.internal.nio.tcp.UnifiedProtocolDecoder.onRead(UnifiedProtocolDecoder.java:116) 位于com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:137) 位于com.hazelcast.internal.networking.nio.NioThread.processSelectionKey(NioThread.java:382) 位于com.hazelcast.internal.networking.nio.NioThread.processSelectionKeys(NioThread.java:367) 位于com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:293) 位于com.hazelcast.internal.networking.nio.NioThread.run(NioThread.java:248)

在此处输入图像描述

**Default Hazelcast Config file:**      

<hazelcast xmlns="http://www.hazelcast.com/schema/config"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.hazelcast.com/schema/config
           http://www.hazelcast.com/schema/config/hazelcast-config-4.0.xsd">

    <cluster-name>dev</cluster-name>

    <network>
        <port auto-increment="true" port-count="100">5701</port>
        <outbound-ports>
            <!--
            Allowed port range when connecting to other nodes.
            0 or * means use system provided port.
            -->
            <ports>0</ports>
        </outbound-ports>
        <join>
            <multicast enabled="true">
                <multicast-group>224.2.2.3</multicast-group>
                <multicast-port>54327</multicast-port>
            </multicast>
            <tcp-ip enabled="false">
                <interface>127.0.0.1</interface>
                <member-list>
                    <member>127.0.0.1</member>
                </member-list>
            </tcp-ip>
            <aws enabled="false">
                <access-key>my-access-key</access-key>
                <secret-key>my-secret-key</secret-key>
                <!--optional, default is us-east-1 -->
                <region>us-west-1</region>
                <!--optional, default is ec2.amazonaws.com. If set, region shouldn't be set as it will override this property -->
                <host-header>ec2.amazonaws.com</host-header>
                <!-- optional, only instances belonging to this group will be discovered, default will try all running instances -->
                <security-group-name>hazelcast-sg</security-group-name>
                <tag-key>type</tag-key>
                <tag-value>hz-nodes</tag-value>
            </aws>
            <gcp enabled="false">
                <zones>us-east1-b,us-east1-c</zones>
            </gcp>
            <azure enabled="false">
                <client-id>CLIENT_ID</client-id>
                <client-secret>CLIENT_SECRET</client-secret>
                <tenant-id>TENANT_ID</tenant-id>
                <subscription-id>SUB_ID</subscription-id>
                <cluster-id>HZLCAST001</cluster-id>
                <group-name>RESOURCE-GROUP-NAME</group-name>
            </azure>
            <kubernetes enabled="false">
                <namespace>MY-KUBERNETES-NAMESPACE</namespace>
                <service-name>MY-SERVICE-NAME</service-name>
                <service-label-name>MY-SERVICE-LABEL-NAME</service-label-name>
                <service-label-value>MY-SERVICE-LABEL-VALUE</service-label-value>
            </kubernetes>
            <eureka enabled="false">
                <self-registration>true</self-registration>
                <namespace>hazelcast</namespace>
            </eureka>
            <discovery-strategies>
            </discovery-strategies>
        </join>
        <interfaces enabled="false">
            <interface>10.10.1.*</interface>
        </interfaces>
        <ssl enabled="false"/>
        <socket-interceptor enabled="false"/>
        <symmetric-encryption enabled="false">
            <!--
               encryption algorithm such as
               DES/ECB/PKCS5Padding,
               PBEWithMD5AndDES,
               AES/CBC/PKCS5Padding,
               Blowfish,
               DESede
            -->
            <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>
        <failure-detector>
            <icmp enabled="false"/>
        </failure-detector>
    </network>
    <partition-group enabled="false"/>
    <executor-service name="default">
        <pool-size>16</pool-size>
        <!--Queue capacity. 0 means Integer.MAX_VALUE.-->
        <queue-capacity>0</queue-capacity>
    </executor-service>
    <security>
        <client-block-unmapped-actions>true</client-block-unmapped-actions>
    </security>
    <queue name="default">
        <!--
            Maximum size of the queue. When a JVM's local queue size reaches the maximum,
            all put/offer operations will get blocked until the queue size
            of the JVM goes down below the maximum.
            Any integer between 0 and Integer.MAX_VALUE. 0 means
            Integer.MAX_VALUE. Default is 0.
        -->
        <max-size>0</max-size>
        <!--
            Number of backups. If 1 is set as the backup-count for example,
            then all entries of the map will be copied to another JVM for
            fail-safety. 0 means no backup.
        -->
        <backup-count>1</backup-count>

        <!--
            Number of async backups. 0 means no backup.
        -->
        <async-backup-count>0</async-backup-count>

        <empty-queue-ttl>-1</empty-queue-ttl>

        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>
    </queue>
    <map name="default">
        <!--
           Data type that will be used for storing recordMap.
           Possible values:
           BINARY (default): keys and values will be stored as binary data
           OBJECT : values will be stored in their object forms
           NATIVE : values will be stored in non-heap region of JVM
        -->
        <in-memory-format>BINARY</in-memory-format>

        <!--
            Metadata creation policy for this map. Hazelcast may process objects of supported types ahead of time to
            create additional metadata about them. This metadata then is used to make querying and indexing faster.
            Metadata creation may decrease put throughput.
            Valid values are:
            CREATE_ON_UPDATE (default): Objects of supported types are pre-processed when they are created and updated.
            OFF: No metadata is created.
        -->
        <metadata-policy>CREATE_ON_UPDATE</metadata-policy>

        <!--
            Number of backups. If 1 is set as the backup-count for example,
            then all entries of the map will be copied to another JVM for
            fail-safety. 0 means no backup.
        -->
        <backup-count>1</backup-count>
        <!--
            Number of async backups. 0 means no backup.
        -->
        <async-backup-count>0</async-backup-count>
        <!--
            Maximum number of seconds for each entry to stay in the map. Entries that are
            older than <time-to-live-seconds> and not updated for <time-to-live-seconds>
            will get automatically evicted from the map.
            Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0
        -->
        <time-to-live-seconds>0</time-to-live-seconds>
        <!--
            Maximum number of seconds for each entry to stay idle in the map. Entries that are
            idle(not touched) for more than <max-idle-seconds> will get
            automatically evicted from the map. Entry is touched if get, put or containsKey is called.
            Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0.
        -->
        <max-idle-seconds>0</max-idle-seconds>

        <eviction eviction-policy="NONE" max-size-policy="PER_NODE" size="0"/>
        <!--
            While recovering from split-brain (network partitioning),
            map entries in the small cluster will merge into the bigger cluster
            based on the policy set here. When an entry merge into the
            cluster, there might an existing entry with the same key already.
            Values of these entries might be different for that same key.
            Which value should be set for the key? Conflict is resolved by
            the policy set here. Default policy is PutIfAbsentMapMergePolicy

            There are built-in merge policies such as
            com.hazelcast.spi.merge.PassThroughMergePolicy; entry will be overwritten if merging entry exists for the key.
            com.hazelcast.spi.merge.PutIfAbsentMergePolicy ; entry will be added if the merging entry doesn't exist in the cluster.
            com.hazelcast.spi.merge.HigherHitsMergePolicy ; entry with the higher hits wins.
            com.hazelcast.spi.merge.LatestUpdateMergePolicy ; entry with the latest update wins.
        -->
        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>

        <!--
           Control caching of de-serialized values. Caching makes query evaluation faster, but it cost memory.
           Possible Values:
                        NEVER: Never cache deserialized object
                        INDEX-ONLY: Caches values only when they are inserted into an index.
                        ALWAYS: Always cache deserialized values.
        -->
        <cache-deserialized-values>INDEX-ONLY</cache-deserialized-values>

    </map>

    <multimap name="default">
        <backup-count>1</backup-count>
        <value-collection-type>SET</value-collection-type>
        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>
    </multimap>

    <replicatedmap name="default">
        <in-memory-format>OBJECT</in-memory-format>
        <async-fillup>true</async-fillup>
        <statistics-enabled>true</statistics-enabled>
        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>
    </replicatedmap>

    <list name="default">
        <backup-count>1</backup-count>
        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>
    </list>

    <set name="default">
        <backup-count>1</backup-count>
        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>
    </set>

    <reliable-topic name="default">
        <read-batch-size>10</read-batch-size>
        <topic-overload-policy>BLOCK</topic-overload-policy>
        <statistics-enabled>true</statistics-enabled>
    </reliable-topic>

    <ringbuffer name="default">
        <capacity>10000</capacity>
        <backup-count>1</backup-count>
        <async-backup-count>0</async-backup-count>
        <time-to-live-seconds>0</time-to-live-seconds>
        <in-memory-format>BINARY</in-memory-format>
        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>
    </ringbuffer>

    <flake-id-generator name="default">
        <prefetch-count>100</prefetch-count>
        <prefetch-validity-millis>600000</prefetch-validity-millis>
        <epoch-start>1514764800000</epoch-start>
        <node-id-offset>0</node-id-offset>
        <bits-sequence>6</bits-sequence>
        <bits-node-id>16</bits-node-id>
        <allowed-future-millis>15000</allowed-future-millis>
        <statistics-enabled>true</statistics-enabled>
    </flake-id-generator>

    <serialization>
        <portable-version>0</portable-version>
    </serialization>

    <lite-member enabled="false"/>

    <cardinality-estimator name="default">
        <backup-count>1</backup-count>
        <async-backup-count>0</async-backup-count>
        <merge-policy batch-size="100">HyperLogLogMergePolicy</merge-policy>
    </cardinality-estimator>

    <scheduled-executor-service name="default">
        <capacity>100</capacity>
        <durability>1</durability>
        <pool-size>16</pool-size>
        <merge-policy batch-size="100">com.hazelcast.spi.merge.PutIfAbsentMergePolicy</merge-policy>
    </scheduled-executor-service>

    <crdt-replication>
        <replication-period-millis>1000</replication-period-millis>
        <max-concurrent-replication-targets>1</max-concurrent-replication-targets>
    </crdt-replication>

    <pn-counter name="default">
        <replica-count>2147483647</replica-count>
        <statistics-enabled>true</statistics-enabled>
    </pn-counter>

    <cp-subsystem>
        <cp-member-count>0</cp-member-count>
        <group-size>0</group-size>
        <session-time-to-live-seconds>300</session-time-to-live-seconds>
        <session-heartbeat-interval-seconds>5</session-heartbeat-interval-seconds>
        <missing-cp-member-auto-removal-seconds>14400</missing-cp-member-auto-removal-seconds>
        <fail-on-indeterminate-operation-state>false</fail-on-indeterminate-operation-state>
        <raft-algorithm>
            <leader-election-timeout-in-millis>2000</leader-election-timeout-in-millis>
            <leader-heartbeat-period-in-millis>5000</leader-heartbeat-period-in-millis>
            <max-missed-leader-heartbeat-count>5</max-missed-leader-heartbeat-count>
            <append-request-max-entry-count>100</append-request-max-entry-count>
            <commit-index-advance-count-to-snapshot>10000</commit-index-advance-count-to-snapshot>
            <uncommitted-entry-count-to-reject-new-appends>100</uncommitted-entry-count-to-reject-new-appends>
            <append-request-backoff-timeout-in-millis>100</append-request-backoff-timeout-in-millis>
        </raft-algorithm>
    </cp-subsystem>

    <metrics enabled="true">
        <management-center enabled="true">
            <retention-seconds>5</retention-seconds>
        </management-center>
        <jmx enabled="true"/>
        <collection-frequency-seconds>5</collection-frequency-seconds>
    </metrics>
</hazelcast>


**Client Code:** 

using Hazelcast.Client;
using Hazelcast.Config;
using Hazelcast.Core;
using System;

namespace HazelCastClientApp1
{
    public class HazelcastClientFactory
    {
        static IHazelcastInstance client;

        public static IHazelcastInstance GetClient()
        {
            if (client == null)
            {
                InitializeClient();
            }

            return client;
        }   


        private static void InitializeClient()
        {
            var cfg = new ClientConfig();
            var hazelcastUrl = "127.0.0.1:5701";
            cfg.GetNetworkConfig().AddAddress(hazelcastUrl);
            client = HazelcastClient.NewHazelcastClient(cfg);
            Console.WriteLine("Local address : {0}", client.GetLocalEndpoint().GetSocketAddress());
            Console.ReadKey();
        }
    }
}
**默认Hazelcast配置文件:**
发展
5701
0
224.2.2.3
54327
127.0.0.1
127.0.0.1
我的访问密钥
我的秘密钥匙
美国西部1号
ec2.amazonaws.com
黑泽尔卡斯特酒店
类型
赫兹节点
美国东部1-b,美国东部1-c
客户识别码
客户机密
租户身份证
子单元ID
HZLCAST001
资源组名称
MY-KUBERNETES-NAMESPACE
我的名字
MY-SERVICE-LABEL-NAME
MY-SERVICE-LABEL-VALUE
真的
黑兹卡斯特
10.10.1.*
pbewithmd5和des
盐
帕斯
19
16
0
真的
0
1.
0
-1
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
二元的
在更新时创建\u
1.
0
0
0
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
仅索引
1.
设置
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
对象
真的
真的
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
1.
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
1.
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
10
块
真的
10000
1.
0
0
二元的
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
100
600000
1514764800000
0
6.
16
15000
真的
0
1.
0
超对数合并策略
100
1.
16
com.hazelcast.spi.merge.PutIfAbsentMergePolicy
1000
1.
2147483647
真的
0
0
300
5.
14400
假的
2000
5000
5.
100
10000
100
100
5.
5.
**客户代码:**
使用Hazelcast.Client;
使用Hazelcast.Config;
使用Hazelcast.Core;
使用制度;
命名空间HazelCastClientApp1
{
公共级HazelcastClientFactory
{
静态iHazelCastinance客户端;
公共静态IHazelcastInstance GetClient()
{
if(客户端==null)
{
初始化客户端();
}
返回客户;
}   
私有静态void InitializeClient()
{
var cfg=new ClientConfig();
var hazelcastUrl=“127.0.0.1:5701”;
cfg.GetNetworkConfig().AddAddress(hazelcastUrl);
client=HazelcastClient.NewHazelcastClient(cfg);
WriteLine(“本地地址:{0}”,client.GetLocalEndpoint().GetSocketAddress());
Console.ReadKey();
}
}
}

错误消息中提到的
[4.0.1]
未知协议:CB2
表示您正在尝试将v3客户端连接到v4服务器。v3客户端不支持v4服务器。请确保您使用的是兼容的客户端和服务器。

客户端的版本是什么?谢谢您的评论,这是我的错误