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.conf
file replace entry corresponding torequire_jars
. - Run logstash with
logstash.conf
file in this repo. - You might have to install a plugin like -
bin/logstash-plugin install logstash-input-jms
from 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 betest
and collection namecustomer
. - Visit
localhost:8090/client
to 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
,authenticate
user via REST HTTPfetch
,login
,logout
,authenticate
user via JMSfetch
,login
,logout
,authenticate
user via JMS client application simulation.
- System can be monitored on the dashboards of
kibana
andactivemq
.