I understand your problem and seems we got bottom this issue. Your
implementation is incorrect. Address resolver invoked not only for local
address and also for external addresses. You need to change the logic from
AddressResolver addressResolver = (InetSocketAddress address) ->
Collections.singleton(externalAddress);
to like this:
public class AddressResolverImpl implements AddressResolver {
/** Internal address on external address. */
private static Map<InetSocketAddress, List<InetSocketAddress>> maps =
new HashMap<>();
static {
maps.put(new InetSocketAddress("192.168.0.1", 47500), F.asList(new
InetSocketAddress("10.0.0.1", 31183)));
maps.put(new InetSocketAddress("192.168.0.2", 47500), F.asList(new
InetSocketAddress("10.0.0.2", 30112)));
}
/** {@inheritDoc} */
@Override public Collection<InetSocketAddress>
getExternalAddresses(InetSocketAddress addr)
throws IgniteCheckedException {
return maps.get(addr);
}
}
On Wed, Dec 14, 2016 at 5:43 PM, ghughal <[email protected]> wrote:
> Nikolai Tikhonov-2 wrote
> > Hi!
> >
> > It's right way to use AddressResolver for deployment in docker. Could you
> > please share your address resolver implementation?
>
> Here's code we are using to configure AddressResolver. Like I mentioned
> earlier, it's not that this code is not working. It works fine when we run
> single instance. The problem appears when we try to start multiple instance
> AT THE SAME TIME using marathon.
>
>
>
>
>
> --
> View this message in context: http://apache-ignite-users.
> 70518.x6.nabble.com/Not-able-to-join-cluster-with-
> Zookeeper-based-IP-finder-tp9311p9532.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>