This section contains examples of CloverETL cluster nodes configuration. We assume that the user "clover" is running the JVM process and the license will be uploaded manually in the web GUI. In addition it is necessary to configure:
sharing or replication of file system directory which the property "sandboxes.home" is pointing to.
E.g. on Unix-like systems it would be typically /home/[username]/CloverETL/sandboxes
.
connection to the same database from both nodes
This example describes the simple cluster: each node has direct connection to database.
Figure 30.1. Configuration of 2-nodes cluster, each node has access to database
configuration of node on 192.168.1.131
jdbc.driverClassName=org.postgresql.Driver jdbc.url=jdbc:postgresql://192.168.1.200/clover?charSet=UTF-8 jdbc.dialect=org.hibernate.dialect.PostgreSQLDialect jdbc.username=clover jdbc.password=clover cluster.enabled=true cluster.node.id=node01 cluster.http.url=http://192.168.1.131:8080/clover cluster.jgroups.bind_address=192.168.1.131 cluster.group.name=TheCloverCluster1
Configuration of node on 192.168.1.132
jdbc.driverClassName=org.postgresql.Driver jdbc.url=jdbc:postgresql://192.168.1.200/clover?charSet=UTF-8 jdbc.dialect=org.hibernate.dialect.PostgreSQLDialect jdbc.username=clover jdbc.password=clover cluster.enabled=true cluster.node.id=node02 cluster.http.url=http://192.168.1.132:8080/clover cluster.jgroups.bind_address=192.168.1.132 cluster.group.name=TheCloverCluster1
The configuration is done in a properties file. The file can be placed either on a default, or specified location.
This cluster configuration is similar to previous one, but only one node has direct access to database. The node2 has to use node1 as a proxy.
Figure 30.2. Configuration of 2-nodes cluster, one node without direct access to database
Configuration of node on 192.168.1.131
jdbc.driverClassName=org.postgresql.Driver jdbc.url=jdbc:postgresql://192.168.1.200/clover?charSet=UTF-8 jdbc.dialect=org.hibernate.dialect.PostgreSQLDialect jdbc.username=clover jdbc.password=clover cluster.enabled=true cluster.node.id=node01 cluster.http.url=http://192.168.1.131:8080/clover cluster.jgroups.bind_address=192.168.1.131 cluster.group.name=TheCloverCluster2
Configuration of node on 192.168.1.132
cluster.datasource.type=remote (1)
cluster.datasource.delegate.nodeIds=node01
cluster.enabled=true
cluster.node.id=node02
cluster.http.url=http://192.168.1.132:8080/clover
cluster.jgroups.bind_address=192.168.1.132
cluster.group.name=TheCloverCluster2
(1) | These two lines describe access to database via another node. |
If you use any external load balancer, the configuration of CloverETL Cluster will be same as in the first example.
Figure 30.3. Configuration of 2-nodes cluster, one node without direct access to database
The cluster.http.url
and cluster.jgroups.bind_address
are urls of particular cluster nodes even if you use load balancer.