-
Notifications
You must be signed in to change notification settings - Fork 232
Using multiple node support and load balancing policy in Kundera
Vivek Mishra edited this page Jun 23, 2013
·
9 revisions
Multiple node support and configuring load balancing policies are now supported within Kundera(Cassandra only). Please refer here for more details.Multiple node support can be used as:
In case all Cassandra nodes are running on same port(say 9160). So minimal required configuration is:
<property name="kundera.nodes" value="192.168.120.134,192.168.120.111,192.168.120.121,192.168.120.141" />
<property name="kundera.port" value="9160" />
in persistence.xml.
In case different Cassandra nodes are running on different ports, it is required to map such configurations in form of "external file" configuration as(say KunderaNodeConfig.xml):
<?xml version="1.0" encoding="UTF-8"?>
<clientProperties>
<datastores>
<dataStore>
<name>cassandra</name>
<connection>
<servers>
<server>
<host>192.168.120.134</host>
<port>9160</port>
<properties>
<property name="testonborrow" value="true"></property>
<property name="testwhileidle" value="true"></property>
<property name="testonconnect" value="true"></property>
<property name="testonreturn" value="true"></property>
<property name="socket.timeout" value="120000"></property>
<property name="failover.policy" value="on.fail.try.one.next.available"></property>
<property name="retry" value="true"></property>
<property name="kundera.pool.size.max.active" value="31"></property>
</properties>
</server>
<server>
<host>192.168.120.111</host>
<port>9161</port>
<properties>
<property name="testonborrow" value="true"></property>
<property name="testwhileidle" value="true"></property>
<property name="testonconnect" value="true"></property>
<property name="testonreturn" value="true"></property>
<property name="socket.timeout" value="120000"></property>
<property name="failover.policy" value="on.fail.try.one.next.available"></property>
<property name="retry" value="true"></property>
<property name="kundera.pool.size.max.active" value="33"></property>
</properties>
</server>
</servers>
<!-- Load balancing specific configuration -->
<properties>
<property name="loadbalancing.policy" value="roundrobin"></property>
<property name="retry" value="true"></property>
<property name="retry.delay" value="1"></property>
</properties>
</connection>
</dataStore>
</datastores>
</clientProperties>
Next step is to map such external configuration file(KunderaLoadConfig.xml) within persistence.xml as:
<property name="kundera.client.property" value="KunderaLoadConfig.xml" />
Load balancing specific configuration can be defined within external configuration file as:
<properties>
<property name="loadbalancing.policy" value="roundrobin"></property>
<property name="retry.delay" value="1"></property>
</properties>
Available set of properties for load balancing are:
| Property | Value |
| failover.policy | on.fail.try.all.available,on.fail.try.one.next.available,fail.fast |
| retry | true/false |
| loadbalancing.policy | roundrobin,leastactive |
| testonborrow | true/false |
| testonreturn | true/false |
| testonconnect | true/false |
| testwhileidle | true/false |
| socket.timeout | Socket time out(in seconds) |
| kundera.pool.size.max.active | Maximum active number of connection in pool. |
| retry.delay | retry delay(in seconds) |
| max.wait | maximum wait in case all active connections are busy(in seconds) |
-
Datastores Supported
- Releases
-
Architecture
-
Concepts
-
Getting Started in 5 minutes
-
Features
- Object Mapper
- Polyglot Persistence
- Queries Support
- JPQL (JPA Query Language)
- Native Queries
- Batch insert update
- Schema Generation
- Primary Key Auto generation
- Transaction Management
- REST Based Access
- Geospatial Persistence and Queries
- Graph Database Support
-
Composite Keys
-
No hard annotation for schema
-
Support for Mapped superclass
-
Object to NoSQL Data Mapping
-
Cassandra's User Defined Types and Indexes on Collections
-
Support for aggregation
- Scalar Queries over Cassandra
- Connection pooling using Kundera Cassandra
- Configuration
-
Kundera with Couchdb
-
Kundera with Elasticsearch
-
Kundera with HBase
-
Kundera with Kudu
-
Kundera with RethinkDB
-
Kundera with MongoDB
-
Kundera with OracleNoSQL
-
Kundera with Redis
-
Kundera with Spark
-
Extend Kundera
- Sample Codes and Examples
-
Blogs and Articles
-
Tutorials
* Kundera with Openshift
* Kundera with Play Framework
* Kundera with GWT
* Kundera with JBoss
* Kundera with Spring
-
Performance
-
Troubleshooting
-
FAQ
- Production deployments
- Feedback