bitsofinfo / hazelcast-docker-swarm-discovery-spi

Docker Swarm based discovery strategy SPI for Hazelcast enabled applications
Apache License 2.0
39 stars 33 forks source link

Is Compatibility with Hazelcast v4.x planned? #53

Open jeiroa opened 3 years ago

jeiroa commented 3 years ago

I am trying the binding via DockerDNSRRMemberAddressProvider with the configuration indicated above and member are correctly resolved but then nodes cannot join the cluster because com.hazelcast.nio.Address class has been moved to com.hazelcast.cluster.Address in version 4.0.3.

Then, I am wondering if a compatible version of hazelcast-docker-swarm-discovery-spi with Hazelcast v4.x is planned, which it would be great.

Please find below some related logging:

2021-06-25 09:48:24.458  INFO 1 --- [main] s.d.s.d.DockerDNSRRMemberAddressProvider : Resolved domain name 'rdd-ngame-consumer-dev_rdd-ngame-consumer-service' to address(es): [rdd-ngame-consumer-dev_rdd-ngame-consumer-service/10.0.80.235, rdd-ngame-consumer-dev_rdd-ngame-consumer-service/10.0.80.236, rdd-ngame-consumer-dev_rdd-ngame-consumer-service/10.0.80.237]
2021-06-25 09:48:24.460  INFO 1 --- [main] s.d.s.d.DockerDNSRRMemberAddressProvider : Checking address /172.19.0.11
2021-06-25 09:48:24.460  INFO 1 --- [main] s.d.s.d.DockerDNSRRMemberAddressProvider : Checking address /10.0.80.235
2021-06-25 09:48:24.467 DEBUG 1 --- [main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Trying to bind inet socket address: /10.0.80.235:5701
2021-06-25 09:48:24.468 DEBUG 1 --- [main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Bind successful to inet socket address: /10.0.80.235:5701
2021-06-25 09:48:24.470  INFO 1 --- [ main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Using bind address: /10.0.80.235:5701
2021-06-25 09:48:24.470  INFO 1 --- [main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Using public address: /10.0.80.235:5701
2021-06-25 09:48:25.751  INFO 1 --- [main] c.h.s.d.integration.DiscoveryService     : [10.0.80.235]:5701 [dev] [4.0.3] Resolved domain name 'rdd-ngame-consumer' to address(es): [rdd-ngame-consumer/10.0.80.235]
2021-06-25 09:48:25.752 ERROR 1 --- [main] c.h.i.cluster.impl.DiscoveryJoiner       : [10.0.80.235]:5701 [dev] [4.0.3] com/hazelcast/nio/Address
java.lang.NoClassDefFoundError: com/hazelcast/nio/Address
    at org.bitsofinfo.hazelcast.spi.docker.swarm.dnsrr.discovery.DockerDNSRRDiscoveryStrategy.discoverNodes(DockerDNSRRDiscoveryStrategy.java:124)
    at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.discoverNodes(DefaultDiscoveryService.java:71)
    at com.hazelcast.internal.cluster.impl.DiscoveryJoiner.getPossibleAddresses(DiscoveryJoiner.java:69)
    at com.hazelcast.internal.cluster.impl.DiscoveryJoiner.getPossibleAddressesForInitialJoin(DiscoveryJoiner.java:58)
    at com.hazelcast.internal.cluster.impl.TcpIpJoiner.joinViaPossibleMembers(TcpIpJoiner.java:136)
    at com.hazelcast.internal.cluster.impl.TcpIpJoiner.doJoin(TcpIpJoiner.java:96)
    at com.hazelcast.internal.cluster.impl.AbstractJoiner.join(AbstractJoiner.java:137)
    at com.hazelcast.instance.impl.Node.join(Node.java:809)
    at com.hazelcast.instance.impl.Node.start(Node.java:464)
    at com.hazelcast.instance.impl.HazelcastInstanceImpl.(HazelcastInstanceImpl.java:122)
    at com.hazelcast.instance.impl.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:211)
    at com.hazelcast.instance.impl.HazelcastInstanceFactory.getOrCreateHazelcastInstance(HazelcastInstanceFactory.java:108)
    at com.hazelcast.core.Hazelcast.getOrCreateHazelcastInstance(Hazelcast.java:165)
    at org.springframework.boot.autoconfigure.hazelcast.HazelcastServerConfiguration.getHazelcastInstance(HazelcastServerConfiguration.java:52)
    at org.springframework.boot.autoconfigure.hazelcast.HazelcastServerConfiguration.access$000(HazelcastServerConfiguration.java:46)
    at org.springframework.boot.autoconfigure.hazelcast.HazelcastServerConfiguration$HazelcastServerConfigFileConfiguration.hazelcastInstance(HazelcastServerConfiguration.java:68)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318)
    at realtimedatadelivery.ngameconsumer.NGameConsumerServiceApplication.main(NGameConsumerServiceApplication.java:33)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: java.lang.ClassNotFoundException: com.hazelcast.nio.Address
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:135)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 78 common frames omitted
2021-06-25 09:48:25.753 DEBUG 1 --- [main] c.h.i.cluster.impl.DiscoveryJoiner       : [10.0.80.235]:5701 [dev] [4.0.3] PostJoin master: null, isMaster: false
2021-06-25 09:48:25.754 ERROR 1 --- [main] com.hazelcast.instance.impl.Node         : [10.0.80.235]:5701 [dev] [4.0.3] Could not join cluster. Shutting down now!
2021-06-25 09:48:25.755  INFO 1 --- [main] com.hazelcast.core.LifecycleService      : [10.0.80.235]:5701 [dev] [4.0.3] [10.0.80.235]:5701 is SHUTTING_DOWN

Thanks.

bitsofinfo commented 3 years ago

hi - nothing planned; feel free to contribute a PR