| ** Please note that the following commands should be executed |
| after downloading the kafka source code to build all the |
| required binaries: |
| 1. <kafka install dir>/ $ ./sbt update |
| 2. <kafka install dir>/ $ ./sbt package |
| |
| Now you are ready to follow the steps below. |
| |
| This script performs broker failure tests in an environment with |
| Mirrored Source & Target clusters in a single machine: |
| |
| 1. Start a cluster of Kafka source brokers |
| 2. Start a cluster of Kafka target brokers |
| 3. Start one or more Mirror Maker to create mirroring between |
| source and target clusters |
| 4. A producer produces batches of messages to the SOURCE brokers |
| in the background |
| 5. The Kafka SOURCE, TARGET brokers and Mirror Maker will be |
| terminated in a round-robin fashion and wait for the consumer |
| to catch up. |
| 6. Repeat step 5 as many times as specified in the script |
| 7. An independent ConsoleConsumer in publish/subcribe mode to |
| consume messages from the SOURCE brokers cluster |
| 8. An independent ConsoleConsumer in publish/subcribe mode to |
| consume messages from the TARGET brokers cluster |
| |
| Expected results: |
| ================== |
| There should not be any discrepancies by comparing the unique |
| message checksums from the source ConsoleConsumer and the |
| target ConsoleConsumer. |
| |
| Notes: |
| ================== |
| The number of Kafka SOURCE brokers can be increased as follows: |
| 1. Update the value of $num_kafka_source_server in this script |
| 2. Make sure that there are corresponding number of prop files: |
| $base_dir/config/server_source{1..4}.properties |
| |
| The number of Kafka TARGET brokers can be increased as follows: |
| 1. Update the value of $num_kafka_target_server in this script |
| 2. Make sure that there are corresponding number of prop files: |
| $base_dir/config/server_target{1..3}.properties |
| |
| Quick Start: |
| ================== |
| In the directory <kafka home>/system_test/broker_failure, |
| execute this script as following: |
| $ bin/run-test.sh -n <num of iterations> -s <servers to bounce> |
| |
| num of iterations - the number of iterations that the test runs |
| |
| servers to bounce - the servers to be bounced in a round-robin fashion. |
| |
| Values to be entered: |
| 1 - source broker |
| 2 - mirror maker |
| 3 - target broker |
| |
| Example: |
| * To bounce only mirror maker and target broker |
| in turns, enter the value 23. |
| * To bounce only mirror maker, enter the value 2. |
| * To run the test without bouncing, enter 0. |
| |
| At the end of the test, the received messages checksums in both |
| SOURCE & TARGET will be compared. If all checksums are matched, |
| the test is PASSED. Otherwise, the test is FAILED. |
| |
| In the event of failure, by default the brokers and zookeepers |
| remain running to make it easier to debug the issue - hit Ctrl-C |
| to shut them down. |