-
Notifications
You must be signed in to change notification settings - Fork 1
Home
All calls from client to microservices are rendered by API Gateway. Runs on Port 4000
Follow the steps to run API Gateway:
- On Terminal.
- Go to APIGateway Directory.
- Open REST Gateway
- Run server.js using the following command: npm run start
- Node JS: v13.8.0
- Express JS
- npm run start
User is authenticated using JWT token. User Management runs on port 8085.
Follow the steps to run User Management:
- On Terminal.
- Go to UserManagement Directory.
- Run the following commands: 1. mvn clean install 2. mvn spring-boot:run
- Java: Version 8 AVA_HOME environment variable needs to be set to the JAVA installation directory. Refer: https: //www.java.com/en/download/ SpringBoot: 2.2.0
- mvn clean install
- mvn spring-boot:run
Session Management is used for tracking user activities. Session Management runs on port 8082.
- Java Version: 8 AVA_HOME environment variable needs to be set to the JAVA installation directory. Refer: https://www.java.com/en/download/
Follow the steps to run Session Management (Indepedently):
- On Terminal
- Go to sessionmanagement-2 Directory.
- Run the following commands: 1. mvn clean install 2. mvn spring-boot:run
- mvn clean install
- mvn spring-boot:run
Data Retrieval is used for fetching data. Data Retrieval runs on port 7000.
- python3 or higher
- pip3 or higher
- Install Docker https://docs.docker.com/install/
- Install Docker confluent-kafka https://docs.confluent.io/current/quickstart/ce-docker-quickstart.html#ce-docker-quickstart Follow the steps listed on the website.
- Linux or mac: pip3.7 install -r requirements.txt
- Windows: pip3 install -r requirements.txt
- On Terminal.
- Navigate to DataRetrieval.
- flask run --port=7000
Model Execution is used to process the fetched data. Model Execution runs on port 7500.
- python version 3 or higher.
- pip python 3 or higher.
- Docker version 19.03.5 to be installed.
- Install Docker https://docs.docker.com/install/
- Install Docker confluent-kafka https://docs.confluent.io/current/quickstart/ce-docker-quickstart.html#ce-docker-quickstart Follow the steps listed on the website.
- Linux or mac: pip3.7 install -r requirements.txt
- Windows: pip3 install -r requirements.txt
- Navigate to Model Execution
- flask run --port=7500
Post Processing displays the Model Execution result. Post Processing runs on port 5500.
- python3 or higher
- pip3 or higher
- Install Docker https://docs.docker.com/install/
- Install Docker confluent-kafka https://docs.confluent.io/current/quickstart/ce-docker-quickstart.html#ce-docker-quickstart Follow the steps listed on the website.
- Linux or mac: pip3.7 install -r requirements.txt
- Windows: pip3 install -r requirements.txt
- Navigate to Post Processing
- flask run --port=5500
A simple react front end to retrieve, process and analyze weather data.
Follow the steps to start the front end service:
- On Ternminal.
- Go inside frontend directory.
- Run the following command: npm start
Front End URL: http://localhost:3000/
Do the following inside frontend directory:
- Install NodeJS version: v13.8.0. You can find it at: https://www.tutorialspoint.com/nodejs/nodejs_environment_setup.htm
- Install nom using the following command: npm install
- Follow this tutorial to install react: https://www.tutorialspoint.com/reactjs/reactjs_environment_setup.htm
- Pull the entire code base from the master branch.
- Set up React and Node JS
- Run all the servers.
- Run the following command to install all the dependencies npm install
- Run the following command to start the server npm start
- Register as a User
- Login using the Credentials
- Click on the Man icon on top right
- Click on the Data Retrieval
- Click on the Model Execution
- Click on Post Processing
- P.S : Model Execution and Post Processing sometimes work & sometimes don't due to the issue from Kafka Production and Consumption not being performed properly but all microservices run properly when run independently.
- An Apache Jmeter based performance testing has been conducted on all the Microservices.
- The Jmeter tool aids in conducting the tests using different loads.
- Load Tests help identify the maximum number of requests each service can handle as well as the bottlenecks due to which the performance starts degrading
- The load tests are conducted via a simulation of the real user scenarios.
- Java version 8 or higher
- Multi core CPUs with 4 or more cores
- At least 16 GB RAM
- 1 Gbps LAN
- Blazemeter (Extension from the Chrome Web Store)
- Login to https://jmeter.apache.org/download_jmeter.cgi
- Under the Binaries Section, click on the link with .zip extension.
- Once the download is complete, extract the contents of the zip file into a new folder.
- Place the folder into C:\Program Files
- Navigate to the bin directory of the installation
- Double click on the jmeter Windows Batch File to launch the application
- Open the command line interface and navigate to the navigate to the bin directory of the installation
- execute the command ./jmeter
- Navigate to the bin directory of the installation
- Execute the command sh ./jmeter.sh on the terminal
- Login in to the Blazemeter Plugin
- Assign an identifier / name to the Test E.x. LoginTest
- Hit the relevant URL for the Login Page
- Start the recording on the Blazemeter for the LoginTest
- Login into the interface using credentials
- Stop the recording on the Blazemeter for the LoginTest
- Save the recorded file .jmx extension
- Import the saved jmx file into Apache Jmeter Workspace.
- Click on the Thread Group and add a number of Users (Load) and the Ramp Up period
- E.x. If the Users OR Number of Threads = 100 and the Ramp Up Period = 200 seconds then every thread spawned is at a 2 minute interval from its previous and next thread.
- Right Click on the Thread Group > Select Listeners > click on Graph Results
- Click on the Triangle shaped Green colored button to start the test.
- As the test progresses, the results can be viewed by Clicking on the Graph Results under Thread group