LINUX.ORG.RU

Spring Boot и Hazelcast

 , ,


1

1

Ребят, всем привет!

Есть два микросервиса, надо между ними шарить данные (мапы, блокировки).

Настраиваю так:

app1

@Configuration
public class HazelCastConfig {

    @Bean
    public HazelcastInstance hazelcastInstance() {
        Config config = new Config();
        config.getGroupConfig().setName("devCluster");

        config.getNetworkConfig().setPort(5702);

        JoinConfig joinConfig = config.getNetworkConfig().getJoin();
        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getTcpIpConfig().setEnabled(true)
                .addMember("127.0.0.1:5701");

        return Hazelcast.newHazelcastInstance(config);
    }
}

app2

@Configuration
public class HazelCastConfig {

    @Bean
    public HazelcastInstance hazelcastInstance() {
        Config config = new Config();
        config.getGroupConfig().setName("devCluster");

        config.getNetworkConfig().setPort(5701);

        JoinConfig joinConfig = config.getNetworkConfig().getJoin();
        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getTcpIpConfig().setEnabled(true)
                .addMember("127.0.0.1:5702");

        return Hazelcast.newHazelcastInstance(config);
    }
}

При запуске получаю такую ошибку

2022-10-25 14:07:35.203  WARN [/] --- [.IO.thread-in-2] c.h.n.t.TcpIpConnection                  : [127.0.0.1]:5702 [devCluster] [3.12.5] Connection[id=2, /127.0.0.1:5702->/127.0.0.1:32770, qualifier=null, endpoint=null, alive=false, type=MEMBER] closed. Reason: Exception in Connection[id=2, /127.0.0.1:5702->/127.0.0.1:32770, qualifier=null, endpoint=null, alive=true, type=MEMBER], thread=hz._hzInstance_1_devCluster.IO.thread-in-2

java.lang.IllegalArgumentException: Packet versions are not matching! Expected -> 4, Incoming -> 72
	at com.hazelcast.nio.PacketIOHelper.readFrom(PacketIOHelper.java:126) ~[hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.nio.tcp.PacketDecoder.onRead(PacketDecoder.java:61) ~[hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:135) ~[hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.processSelectionKey(NioThread.java:369) [hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.processSelectionKeys(NioThread.java:354) [hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:280) [hazelcast-3.12.5.jar:3.12.5]
	at com.hazelcast.internal.networking.nio.NioThread.run(NioThread.java:235) [hazelcast-3.12.5.jar:3.12.5]

И, что самое интересное (нет), после некоторого количества таких ворнингов (минуты через 2-3) кластер таки собирается и микросервис запускается!

Версии зависимостей одинаковые в микросервисах.

Может кто подскажет что не так?



Последнее исправление: galliley (всего исправлений: 1)

Ответ на: комментарий от galliley

как и ожидалось проблема в ОС, но, к моему дикому удивлению, в антивирусе! dr.Web при использовании компонента «Spider Gate» (сетевой экран), добавляет некоторые правила, которые влияют на сетевые пакеты, которыми обмениваются микросервисы при настройки кластера Hazelcast

[root@ruslan-lin-pc ~]# iptables -t mangle -vL -n
Chain PREROUTING (policy ACCEPT 75572 packets, 25M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1417 3564K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* drweb-firewall */ mark match 0x0/0x6 connmark match  0x4/0x6 MARK or 0x1
  589 25185 TPROXY     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            /* drweb-firewall */ mark match ! 0x6/0x6 connmark match  0x2/0x6 TPROXY redirect 127.0.0.1:38319 mark 0x1/0x1

Chain INPUT (policy ACCEPT 76161 packets, 25M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 76229 packets, 9932K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    3   156 NFQUEUE    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            /* drweb-firewall */ tcp flags:0x12/0x02 mark match 0x0/0x6 NFQUEUE num 0 bypass
    2   104 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* drweb-firewall */ mark match 0x2/0x6 CONNMARK set 0x2
 1260 58336 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* drweb-firewall */ mark match 0x4/0x6 CONNMARK set 0x4
  593 25664 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            /* drweb-firewall */ mark match 0x0/0x6 connmark match ! 0x0/0x6 MARK or 0x1

Chain POSTROUTING (policy ACCEPT 76232 packets, 9932K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain LIBVIRT_PRT (0 references)
 pkts bytes target     prot opt in     out     source               destination         
[root@ruslan-lin-pc ~]# 

После удаления правил, проблемы пропали :)

Ребят, будьте внимательны!

galliley
() автор топика