This application implements an Event mechanism usable in Microservice environments.
- a publisher publishes events with one of these topics
- customer.created
- customer.edited
- customer.deleted
- order.created
- order.edited
- order.deleted
- invoice.created
- invoice.edited
- invoice.deleted
- a subscriber subscribes to events of a specific topic from a queue specific to its (micro-)service
- Install RabbitMQ (if it's installed on another
host than localhost then you need to change the connection properties in
application.properties
) - start a couple instances of the demo application in
subscriber
mode, for example:./gradlew bootrun -Dspring.profiles.active=subscriber -Dsubscriber.queue=service1Queue -Dsubscriber.routingKey=customer.*
./gradlew bootrun -Dspring.profiles.active=subscriber -Dsubscriber.queue=service2Queue -Dsubscriber.routingKey=.*created
./gradlew bootrun -Dspring.profiles.active=subscriber -Dsubscriber.queue=service3Queue -Dsubscriber.routingKey=*.*
- start a single instance of the demo application in
publisher
mode:./gradlew bootrun -Dspring.profiles.active=publisher
- check the log output of the publisher and the subscribes to see which events are produced and which events are consumed by each subscriber