Flash Sale + RabbitMQ + Postgres + Jmeter
https://gitorko.github.io/flash-sale-system/
Check version
$java --version
openjdk 17.0.3 2022-04-19 LTS
node --version
v16.16.0
yarn --version
1.22.18
docker run -p 5432:5432 --name pg-container -e POSTGRES_PASSWORD=password -d postgres:9.6.10
docker ps
docker exec -it pg-container psql -U postgres -W postgres
CREATE USER test WITH PASSWORD 'test@123';
CREATE DATABASE "test-db" WITH OWNER "test" ENCODING UTF8 TEMPLATE template0;
grant all PRIVILEGES ON DATABASE "test-db" to test;
docker stop pg-container
docker start pg-container
docker run -d -p 5672:5672 -p 15672:15672 --name my-rabbit rabbitmq:3-management
user: guest
pwd: guest
To run the backend in dev mode Postgres DB is needed to run the integration tests during build.
./gradlew clean build
./gradlew bootRun
To Run UI in dev mode
cd ui
yarn install
yarn build
yarn start
To run as a single jar, both UI and backend are bundled to single uber jar.
./gradlew cleanBuild
cd build/libs
java -jar project90-1.0.0.jar
To test for concurrent requests and load test the UI you can use JMeter with selenium plugin
brew install jmeter
xattr -d com.apple.quarantine chromedriver
Install the selenium plugin for JMeter
Download the chrome driver
https://chromedriver.chromium.org/downloads
./gradlew cleanBuild
docker build -f docker/Dockerfile --force-rm -t project90:1.0.0 .
docker images |grep project90
docker tag project90:1.0.0 gitorko/project90:1.0.0
docker push gitorko/project90:1.0.0
docker-compose -f docker/docker-compose.yml up