Great! Thanks Denis! that's the issue. After I configured it in security
group, it works

On Sat, Apr 20, 2019 at 6:03 AM Denis Magda <[email protected]> wrote:

> By default, each node will be connecting to port 47500 and the next 100
> ports if nobody responds on 45700, 457001, etc.
>
> Please check that the port is opened. Alternatively, you can always manage
> the port with TcpDiscoverySpi.setLocalPort [1]. The ports range can be
> adjusted as well. [2]
>
> [1]
> https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java#L771
> [2]
> https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java#L782
>
> -
> Denis
>
>
> On Fri, Apr 19, 2019 at 9:38 PM relax ken <[email protected]> wrote:
>
>> I don't think both nodes joined the cluster. That is the problem. I don't
>> know what it's wrong and why they are not in the cluster. They are in the
>> same subnet,. They can talk to each other. They found each other's IP.
>>
>> What port does ignite use for cluster joining? It may be security group
>> issue. Will ignite throw exception or log warning if they can't join the
>> cluster?
>>
>> Thanks
>>
>> On Sat, 20 Apr 2019, 05:50 Denis Magda, <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> Could you confirm that both nodes on AWS joined the cluster? Data will
>>> be rebalanced between the nodes once you see 2 server nodes in your cluster
>>> topology. Might be some networking issue.
>>>
>>> -
>>> Denis
>>>
>>>
>>> On Tue, Apr 16, 2019 at 9:53 AM relax ken <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> I wrote an aws ELB based tcp discovery ip finder. When I launched two
>>>> ec2 nodes in the same target group, the ip finder found node IPs correctly.
>>>> However, affinity recalculation wasn't triggered. Basically nothing
>>>> happened. also no exception. If I ran two nodes locally with multicast,
>>>> affinity recalculation worked properly. I just wonder what else I need
>>>> to do to make the custom IP finder works?
>>>>
>>>> Here is the overrided method in IPFinder. Basically it just is a
>>>> slightly modified version of TcpDiscoveryElbIpFinder
>>>>
>>>> @Override public Collection<InetSocketAddress> getRegisteredAddresses() 
>>>> throws IgniteSpiException {
>>>>     initClients();
>>>>
>>>>     logger.debug("elb host discovery");
>>>>     List<String> privateIPs = 
>>>> awsService.getHealthyPrivateIPsFromTarget(targetGroupArn);
>>>>     List<InetSocketAddress> addrs = new ArrayList<>();
>>>>
>>>>     for (String privateIP : privateIPs) {
>>>>         logger.debug("tcp discovery. found host "+privateIP);
>>>>         addrs.add(new InetSocketAddress(privateIP, 0));
>>>>     }
>>>>
>>>>     return addrs;
>>>> }
>>>>
>>>> @Override public void registerAddresses(Collection<InetSocketAddress> 
>>>> addrs) throws IgniteSpiException {
>>>>     //No-op, ELB will take care of registration.
>>>> }
>>>>
>>>> @Override public void unregisterAddresses(Collection<InetSocketAddress> 
>>>> addrs) throws IgniteSpiException {
>>>>     // No-op, ELB will take care of this process.
>>>> }
>>>>
>>>> And here is the ignite config setting
>>>>
>>>> TcpDiscoverySpi spi = new TcpDiscoverySpi();
>>>>
>>>> spi.setIpFinder(getTcpELBIpFinder(elbDiscoveryConfig));
>>>>
>>>> IgniteConfiguration igniteConfig = new IgniteConfiguration();
>>>> igniteConfig.setMetricsLogFrequency(0);
>>>> igniteConfig.setDiscoverySpi(spi);
>>>> DataStorageConfiguration storageCfg = new DataStorageConfiguration();
>>>> storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(false);
>>>> igniteConfig.setDataStorageConfiguration(storageCfg);
>>>>
>>>> Any ideas?
>>>>
>>>>
>>>> Thanks
>>>>
>>>>
>>>> Ken
>>>>
>>>>

Reply via email to