This is a term project. It does not exhibit my current programming skills
This is an example application which integrates 3 independent modules asynchronously using JMS communication mechanisms. The three modules are:
- Client application
- Authorisation Backend Server
- ELK Stack to monitor client and server applications
We have used ActiveMQ to implement JMS communication betweent the three modules. Mode details about the implementation and architecture can be found here
- Make sure you have activemq installed and running. Check by visiting
http://localhost:8161/ - Run elasticsearch, kibana in seperate windows.
- Make sure to change your activemq jar file path in the
logstash.conffile replace entry corresponding torequire_jars. - Run logstash with
logstash.conffile in this repo. - You might have to install a plugin like -
bin/logstash-plugin install logstash-input-jmsfrom your logstash installed directory. - Go to your Kibana discover tab and create an index -
logstash-* - Make sure you have MongoDB running.
Now, everything should be setup.
- Run the spring app using
mvn spring-boot:run - Hopefully, everything runs fine. Now, visit
localhost:8090/available, this sends a message to the queue. Check your queue by visitinglocalhost:8161, you should see a queue with the namehelloworld.q. - Now, visit you kibana discover tab, you should see the message there as well. This completes the app -> activemq -> logstash -> elasticsearch -> kibana cycle.
- Now, visit,
localhost:8090/save, this should save a few entries in mongodb. Access mongoshell to check if it was store. DB name would betestand collection namecustomer. - Visit
localhost:8090/clientto access the client page. - Test user data can be generated using the provided script. It generates fake data of this format. This data can be fed into mongo db using the command
mongoimport --type csv -d test -c faker --headerline customer_data.csv. - Now, we can use the different APIs exposed by Server to
fetch,login,logout,authenticateuser via REST HTTPfetch,login,logout,authenticateuser via JMSfetch,login,logout,authenticateuser via JMS client application simulation.
- System can be monitored on the dashboards of
kibanaandactivemq.