The Edge Server is a common entry point for all clients to use the Devices Tracking System.
You need to have the following tools installed and configured:
- Java SE 1.8+
- Maven 3.0+
- RabbitMQ Server 3.0+
In order to run the edge server, follow these steps:
- Add two environment variables:
GOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETcontaining the Client ID and Client Secret keys obtained by setting up the project integration with the Google OAuth2 on the Google Developers Console site. - Run the Configuration Server.
- Run the Service Discovery.
- Run all the underlying services covered by this gateway service (including their dependencies such as MongoDB and RabbitMQ).
- Clone the latest production version of this repository from the
masterbranch. - Navigate to the cloned repository and install all dependencies by typing:
mvn install
- Run the built
*.jarfile passing the location of configuration files by typing:
java -jar target/edge-server-1.0-SNAPSHOT.jar --spring.config.location=classpath:pl/edu/agh/iet/dts/edge/
When the *.jar file is successfully built, a Docker image for the production environment may be created by applying
following steps:
- Enter the root directory of this repository.
- Build the Docker image by typing:
docker build . -t edge-server
- In order to run the image, type:
docker run -p 80:80 -p 44361:44321 -p 44363:44323 -e GOOGLE_CLIENT_ID=[Google OAuth2 Client ID] -e GOOGLE_CLIENT_SECRET=[Google OAuth2 Client Secret] -e CONFIGURATION_SERVER_IP=[CONFIGURATION SERVER HOST IP ADDRESS] -e EUREKA_IP=[EUREKA HOST IP ADDRESS] -e ZIPKIN_IP=[ZIPKIN HOST IP ADDRESS] -e RABBITMQ_IP=[RABBITMQ HOST IP ADDRESS] -t edge-server
Please note that this docker container uses the Performance Co-Pilot (PCP) tool to gather data for system monitoring
metrics. These values are accessed via the 44361 and 44363 ports. In order to visualize performance of this
microservice, please enter the [CONTAINER IP ADDRESS]:44363 value in the Hostname field placed in the Netflix Vector
dashboard.
In order to test the application locally, run the built *.jar file by typing:
java -jar target/edge-server-1.0-SNAPSHOT.jar --spring.profiles.active=test --spring.config.location=classpath:pl/edu/agh/iet/dts/edge/
and then execute specific tests.
In order to send fake positions data to the WebSocket, use the pl.edu.agh.iet.dts.edge.messaging.GPSEventWebSocketClient
class placed under the src/test/java directory. At its startup, this class takes two parameters: address of the target
WebSocket (given by: ws://[EDGE SERVER HOST IP ADDRESS]/events) and ID of a client whose data are being pushed.
In order to turn on debug logs for classes located in the pl.edu.agh.iet.dts.* package within this repository, please
activate the debug profile by setting the --spring.profiles.active=[OTHER PROFILES],debug flag and adding the
--debug flag.