Dynamic discovery happens after the static nodes are added, and the static nodes being available is crucial for the cluster to work.
On Sat, Aug 2, 2014 at 11:04 AM, Nirmal Fernando <[email protected]> wrote: > Hi Azeez, > > Thanks for the replies. Sorry, if I misunderstood the Hazelcast > TcpIpJoiner, but I did following test on Hazelcast tcp/ip [1] and it seems > each node discovers every other dynamically [2]. My Hazelcast.xml file is > [3]. Does my test case incorrect? Appreciate your thoughts. > > [1] > > public static void main(String[] args) { > System.setProperty("hazelcast.config", > "src/main/resources/hazelcast.xml"); > // Build Hazelcast cluster > System.out.println("Starting instance 1"); > HazelcastInstance h1 = Hazelcast.newHazelcastInstance(); > System.out.println("Starting instance 2"); > HazelcastInstance h2 = Hazelcast.newHazelcastInstance(); > > IMap<String, String> map1 = h1.getMap("map"); > map1.put("nirmal", "fernando"); > > IMap<String, String> map2 = h2.getMap("map"); > System.out.println("from h2: " + map2.get("nirmal")); > map2.set("nirmal", "fdo"); > System.out.println("from h1: " + map1.get("nirm")); > > HazelcastInstance h3 = Hazelcast.newHazelcastInstance(); > System.out.println(h1.getCluster().getMembers().size()); > System.out.println(h2.getCluster().getMembers().size()); > System.out.println(h3.getCluster().getMembers().size()); > System.exit(0); > } > > [2] > > ..... > > Members [3] { > Member [127.0.0.1]:5701 this > Member [127.0.0.1]:5702 > Member [127.0.0.1]:5703 > } > > Aug 2, 2014 10:59:17 AM com.hazelcast.cluster.ClusterService > INFO: [127.0.0.1]:5703 [dev] > > Members [3] { > Member [127.0.0.1]:5701 > Member [127.0.0.1]:5702 > Member [127.0.0.1]:5703 this > } > > Aug 2, 2014 10:59:17 AM com.hazelcast.cluster.ClusterService > INFO: [127.0.0.1]:5702 [dev] > > Members [3] { > Member [127.0.0.1]:5701 > Member [127.0.0.1]:5702 this > Member [127.0.0.1]:5703 > } > > Aug 2, 2014 10:59:17 AM com.hazelcast.partition.PartitionService > INFO: [127.0.0.1]:5701 [dev] Re-partitioning cluster data... Migration > queue size: 90 > Aug 2, 2014 10:59:19 AM com.hazelcast.core.LifecycleService > INFO: [127.0.0.1]:5703 [dev] Address[127.0.0.1]:5703 is STARTED > 3 > 3 > 3 > > [3] > > <hazelcast 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-3.2.xsd" > xmlns="http://www.hazelcast.com/schema/config"> > <network> > <join> > <tcp-ip enabled="true"> > <member>127.0.0.1</member> > </tcp-ip> > </join> > </network> > > </hazelcast> > > > > > On Sat, Aug 2, 2014 at 10:25 AM, Afkham Azeez <[email protected]> wrote: > >> Anyway, there is a catch here. The membership scheme uses TCP/IP >> underneath, and adds the members it sees as static members. But when all >> the members each node added fails, that node has to be restarted. So, when >> the cluster if formed, node 1 will not have any WK members; node 2 will >> have 1 WK member, node 3 will have 2 and so on. So if node 1 fails, node 2 >> also fails, if nodes 1 & 2 fail, node 3 also fails. >> >> >> On Sat, Aug 2, 2014 at 10:10 AM, Nirmal Fernando <[email protected]> wrote: >> >>> Hi All, >>> >>> In a Cloud environment, it's not ideal to mark one or more WKA members >>> since it brings lot of challenges such as; >>> >>> 1. Keeping WKA members up and running always >>> 2. If they got destroyed spin up replacement WKA members and respawn the >>> whole cluster. >>> etc. >>> >>> These could possibly lead to lot of instability to the cluster and in >>> turn affect the sole purpose of clustering. >>> >>> According to [1] and also to the Hazelcast book, Hazelcast has a >>> solution to this problem for AWS EC2. Here I quote [1]. >>> >>> >>> >>> >>> >>> *Hazelcast either uses Multicast or TCP/IP for discovery, but EC2 does >>> not support multicast. To configure discovery using TCP/IP, you need the IP >>> addresses upfront and this is not always possible. To solve this problem, >>> Hazelcast supports EC2 auto discovery which is a layer on top ofTCP/IP >>> discovery. EC2 auto discovery uses AWS API to get the IP addresses of >>> possible Hazelcast nodes and feeds those IP addresses to TCP/IP discovery. >>> This way the discovery process becomes dynamic and it eliminates a need for >>> knowing the IP addresses upfront. To limit theIP addresses only to >>> Hazelcast related nodes, EC2 discovery supports filtering based on security >>> group and/or tags.* >>> >>> Current idea is to use tags to specify the cluster domain and need to >>> research more and come up with a design. Further, we could leverage >>> Hazelcast's partition groups to support HA across Availability zones. >>> >>> Also, if this is only for EC2, that would not be much useful. But >>> Hazelcast seems to have an extension point to support other Clouds via >>> JClouds. >>> >>> >>> >>> >>> *In case you are using a different cloud provider than Amazon EC2, you >>> can still make use of Hazelcast. What you can do it to use the programmatic >>> api toconfigure a tcp-ip cluster and the well known members need to be >>> retrieved fromyour cloud provider (e.g. using jclouds).* >>> >>> In addition to this, at [1] Hazelcast describes some best practices to >>> use in AWS EC2 Cloud. And I think we could leverage these in many of the >>> real world deployments. >>> >>> I hope it's feasible to port this support to Carbon Clustering and I'd >>> like to work on it. Let me know your thoughts. >>> >>> [1] http://hazelcast.com/resources/amazon-ec2-deployment-guide/ >>> >>> -- >>> >>> Thanks & regards, >>> Nirmal >>> >>> Senior Software Engineer- Platform Technologies Team, WSO2 Inc. >>> Mobile: +94715779733 >>> Blog: http://nirmalfdo.blogspot.com/ >>> >>> >>> >> >> >> -- >> *Afkham Azeez* >> Director of Architecture; WSO2, Inc.; http://wso2.com >> Member; Apache Software Foundation; http://www.apache.org/ >> * <http://www.apache.org/>* >> *email: **[email protected]* <[email protected]> >> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: * >> *http://blog.afkham.org* <http://blog.afkham.org> >> *twitter: **http://twitter.com/afkham_azeez* >> <http://twitter.com/afkham_azeez> >> * linked-in: **http://lk.linkedin.com/in/afkhamazeez >> <http://lk.linkedin.com/in/afkhamazeez>* >> >> *Lean . Enterprise . Middleware* >> > > > > -- > > Thanks & regards, > Nirmal > > Senior Software Engineer- Platform Technologies Team, WSO2 Inc. > Mobile: +94715779733 > Blog: http://nirmalfdo.blogspot.com/ > > > -- *Afkham Azeez* Director of Architecture; WSO2, Inc.; http://wso2.com Member; Apache Software Foundation; http://www.apache.org/ * <http://www.apache.org/>* *email: **[email protected]* <[email protected]> * cell: +94 77 3320919 blog: **http://blog.afkham.org* <http://blog.afkham.org> *twitter: **http://twitter.com/afkham_azeez* <http://twitter.com/afkham_azeez> * linked-in: **http://lk.linkedin.com/in/afkhamazeez <http://lk.linkedin.com/in/afkhamazeez>* *Lean . Enterprise . Middleware*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
