This repository is:
- EXPERIMENTAL
- TEMPORARY
This is a proof of concept of using JHipster in a microservices architecture, using:
- JHiRegistry is an application registry, based on Netflix Eureka
- JHiGateway is a JHipster application which is also a router, based on Netflix Zuul
- JHiDashboard is a monitoring dashboard, based on Netflix Turbine
- app1 is a JHipster application, which registers itself to JHiRegistry
Run mvn
on each project to get them running.
- JHiGateway and app1 will register themselves to JHiRegistry
- JHiGateway will route requests to
/api/foos
to app1
You can also run several app1 instances by changing their Spring Boot server.port
property, and you will see them in JHiRegistry.
- Monitoring and logging: this should be done using the ELK stack, with Logstash handling the Spring Boot logs
- Have a nice uniform UI for everything: JHiRegistry and JHiDashboard should be available in the Admin dashboard of JHiGateway, with the usual JHipster UI
- JHiGateway should also have an admin UI to add/remove/edit routes at runtime: Zuul allows this using a Cassandra backend, we might also need to implement another backend (which is easy).
- Have some validated workflows to work on AngularJS (served by JHiGateway) and a REST endpoint served by a backend application (and routed by JHiGateway)
- JHiRegistry, JHiDashboard will be standalone applications.
- JHiGateway might be a standalone application, or be generated by JHipster (still needs to be discussed)
- JHipster applications will have a new option to register themselves to Eureka