The purpose of this project is to hands on learning experience about Kafka while impl a battery level checking application
WIP
That System is constructed in several kafka brokers and middleware which use HTTP transport
-
Getting token by firebase login
-
Create custom token (Using for generate access token)
-
Post to user date to server
-
Added token at header
-
[HTTP]Get {domain}/api/v1/device
...
For detailed information about the API, Please read this documentation
To running this application, need to setup docker swarm system.
docker node update --label-add kafka=1 {hostname}
docker node update --label-add kafka=2 {hostname}
...
locate firebase key at ./conf/firebase/key.json
docker stack deploy -c kafka.yml {stack name}
or
cd shell && ./deployZoo.sh && ./deployKafka.sh
cd shell && ./deployApp.sh
- tested on rpi4 x 4 cluster
- Used Docker swarm
- Each service(apid, auth, consumer) scaled to 3 instance
- test tool : jmeter
- HTTP method : post
- Thread : 2000
- Ramp-up period : 1
- Loop : 10
Summary report
Response time graph
The following dependencies are used in the project: