| == 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 |
| localhost:9992. |
| |
| 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: |
| |
| [source,sh] |
| ---- |
| $ mvn compile |
| ---- |
| |
| === Run |
| |
| To run the example, then execute the following commands, each in a separate session in the terminal: |
| |
| ==== mina1 |
| |
| [source,sh] |
| ---- |
| mvn exec:java -Pmina1 |
| ---- |
| |
| ==== mina2 |
| |
| [source,sh] |
| ---- |
| mvn exec:java -Pmina2 |
| ---- |
| |
| ==== loadbalancer |
| |
| [source,sh] |
| ---- |
| mvn exec:java -Ploadbalancer |
| ---- |
| |
| === Help and contributions |
| |
| If you hit any problem using Camel or have some feedback, then please |
| https://camel.apache.org/community/support/[let us know]. |
| |
| We also love contributors, so |
| https://camel.apache.org/community/contributing/[get involved] :-) |
| |
| The Camel riders! |