Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get a visualization of cross-app Spring Integration flow?

We have a microservices architecture, i.e. each of the main components of our system is designed to be run as a separate Java app (jar or war).

We use Spring Integration to facilitate communication between the components (over a MQ service).

How can we get a graphical diagram of the whole integration layer of the system, given that each component has its own Spring Integration XML config?

Note that we know how to do it within a single application. The question is how to do it cross-app.

Example: Component 1 generates stream of POJOs -> MQ -> Component 2 serializes POJO object graph to JSON -> MQ -> Component 3 saves JSON to DB

Also, if a viable solution would be to create a single Spring Integration config, then how to make sure all components use it?

like image 946
Rado Avatar asked Jun 25 '15 10:06

Rado


2 Answers

This apparently can't be done easily at the moment.

My research brings me to the conclusion the only way is to use external tools:

  • New Relic Service Map - Commercial. Probably only diagramming running microservice systems, because it's a monitoring system.
  • AppDynamics - Commercial. Probably only diagramming running microservice systems, because it's a monitoring system.
  • Spigo - Open source. One could parse Spring Integration XML configs, generate input for Spigo, and generate a graph.
  • micro-infra-spring - Open source. For diagramming running microservice systems. Requires ZooKeeper.
like image 168
Jan Żankowski Avatar answered Sep 22 '22 01:09

Jan Żankowski


You can also use Twitter Zipkin and hopefully quite soon Spring Cloud Sleuth to trace it further on.

like image 32
Marcin Grzejszczak Avatar answered Sep 19 '22 01:09

Marcin Grzejszczak