| == Camel Route Throttling |
| |
| === Introduction |
| |
| This example shows how to use the new feature in Camel 2.1 which is |
| RoutePolicy. A route policy allows you to associate a route with a |
| policy. Camel provides a throttling policy which allows Camel to dynamic |
| throttle the route consumer depending on the number of concurrent |
| messages current in flight. |
| |
| The Server is required to be running when you start the client. You can |
| see on the server it should log in the console how it adjust the |
| throttling dynamically. |
| |
| The goal of this example is to illustrate that Camel throttles the JMS |
| queue to be on same pace with the rest of the Camel routing. When |
| running the example you should observe that the JMS route and the SEDA |
| route completes nearly in sync. |
| |
| === Build |
| |
| You will need to compile this example first: |
| |
| .... |
| mvn compile |
| .... |
| |
| === How to Run |
| |
| The example has 3 maven goals to run the example |
| |
| .... |
| mvn compile exec:java -PCamelServer |
| .... |
| |
| Starts the Camel Server which contains the 3 routes and where you should |
| check its log output for how it goes. |
| |
| .... |
| mvn compile exec:java -PCamelClient |
| .... |
| |
| Is a client that sends 10000 JMS messages to the JMS broker which is |
| consumed by route1. The Server must be started beforehand. |
| |
| .... |
| mvn compile exec:java -PCamelFileClient |
| .... |
| |
| Is a client that creates 5000 files that are consumed by route2. The |
| server may be started beforehand, but its not required. |
| |
| So at first you start the server. Then at any time you can run a client |
| at will. For example you can run the JMS client and let it run to |
| completion at the server. You can see at the server console logging that |
| it reports the progress. And at sometime it will reach 10000 messages |
| processed. You can then start the client again if you like. You can also |
| start the other client to create the files which then let the example be |
| a bit more complicated as we have concurrent processing of JMS messages |
| and files at the same time. And where as both of these should be dynamic |
| throttled so we wont go too fast. |
| |
| To stop the example hit ctrl+c |
| |
| === Help and contributions |
| |
| If you hit any problem using Camel or have some feedback, then please |
| https://camel.apache.org/support.html[let us know]. |
| |
| We also love contributors, so |
| https://camel.apache.org/contributing.html[get involved] :-) |
| |
| The Camel riders! |