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 will get security issues, see what's missing below)
You can also run several app1 instances by changing their Spring Boot server.port
property, and you will see them in JHiRegistry.
- Security: this must be done using OAuth2 at least. If this is done with an OAuth2 server, it will be with the Spring Security implementation, and will be called JHiSecurity
- 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 and JHiSecurity 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