- Docker is needed.
- On Windows, it's tested on wsl2
Build the code
./do --component="Cluster" --command="gradle_build"
Create a docker network if not present
docker network create \
--subnet 10.0.0.0/16 \
--opt com.docker.network.driver.mtu=9216 \
--opt com.docker.network.bridge.enable_icc=true \
--opt com.docker.network.driver.mtu=9000 \
aeron
- ClusteredService
- print a log of each event type
On 3 different terminals, execute:
node_ip=10.0.0.2
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=0 --node_id=0 --node_ip="${node_ip}"
node_ip=10.0.0.3
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=0 --node_id=1 --node_ip="${node_ip}"
node_ip=10.0.0.4
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=0 --node_id=2 --node_ip="${node_ip}"
- changelog since Cluster.Demo0:
- ClusteredService
- log message from EgressListener
- EgressListener
- print a log of each event type
- send a message to ClusteredService
- ClusteredService
On 3 different terminals, execute:
node_ip=10.0.0.2
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=1 --node_id=0 --node_ip="${node_ip}"
node_ip=10.0.0.3
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=1 --node_id=1 --node_ip="${node_ip}"
node_ip=10.0.0.4
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=1 --node_id=2 --node_ip="${node_ip}"
On a 4th terminal, execute:
./do --host --component="Cluster" --command="exec_client" --demo=1
- Works with:
- changelog since Cluster.Demo1:
- ClusteredService
- ping pong message from egressListener
- ClusteredService
On 3 different terminals, execute:
node_ip=10.0.0.2
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=2 --node_id=0 --node_ip="${node_ip}"
node_ip=10.0.0.3
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=2 --node_id=1 --node_ip="${node_ip}"
node_ip=10.0.0.4
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=2 --node_id=2 --node_ip="${node_ip}"
- Works with:
- changelog since Cluster.Demo2:
- ClusteredService
- switch between different messages
- use the Tic Tac Toe game logic
- ClusteredService
On 3 different terminals, execute:
node_ip=10.0.0.2
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=3 --node_id=0 --node_ip="${node_ip}"
node_ip=10.0.0.3
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=3 --node_id=1 --node_ip="${node_ip}"
node_ip=10.0.0.4
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=3 --node_id=2 --node_ip="${node_ip}"
- Works with:
- changelog since Cluster.Demo3:
- TODO
On 3 different terminals, execute:
node_ip=10.0.0.2
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=4 --node_id=0 --node_ip="${node_ip}"
node_ip=10.0.0.3
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=4 --node_id=1 --node_ip="${node_ip}"
node_ip=10.0.0.4
RUNNER_DOCKER_ARGS="--network=aeron --ip=${node_ip} --shm-size=512Mb" \
./do --component="Cluster" --command="exec_node_v0" \
--demo=4 --node_id=2 --node_ip="${node_ip}"