blob: a957f88753a1152af84f2b770100effdfecd6a4f [file] [log] [blame]
== Load balancing with MINA Example
=== Introduction
This example shows how you can easily use the Camel-MINA component to
design a solution allowing for distributing message workload onto
several servers. These servers are simple TCP/IP servers created by the
Apache MINA framework and run in separate JVMs. The load balancer
pattern of Camel which is used on top of them allows for sending in
Round Robin mode the messages created from a Camel Bean component
alternatively between each server running on localhost:9991 and
Within this demo every ten seconds, a Report object is created from the
Camel load balancer server. This object is sent by the Camel load
balancer to a MINA server where the object is then serialized. One of
the two MINA servers (localhost:9991 and localhost:9992) receives the
object and enriches the message by setting the field reply of the Report
object. The reply is sent back by the MINA server to the client, which
then logs the reply on the console.
If any of the two MINA servers is not running, then the load balancer
will automatic failover to the next server.
=== Build
You will need to compile this example first:
$ mvn compile
=== Run
To run the example, then execute the following commands, each in a separate session in the terminal:
==== mina1
mvn exec:java -Pmina1
==== mina2
mvn exec:java -Pmina2
==== loadbalancer
mvn exec:java -Ploadbalancer
=== Help and contributions
If you hit any problem using Camel or have some feedback, then please[let us know].
We also love contributors, so[get involved] :-)
The Camel riders!