分享微生物之间的观点

时间:2016-10-07 11:24:30

标签: spring jsp spring-mvc spring-boot microservices

我正在使用spring boot将monolith web服务拆分为几个微服务。为了减少重复的代码,我在不同的微服务中使用的maven模块中提取了共享部分。

monolith应用程序有一个运行状况检查页面,显示有关服务状态和一些debbuging信息的各种信息。它是用Spring MVC和jsp实现的。

我想在每个微服务中使用此视图。什么是最好的方法,而不重复视图/控制器?

我在考虑将web模块添加到包含控制器,视图,spring mvc设置的共享maven项目中...... 但我不确定在一个微服务中有两个Web模块是否合适。

1 个答案:

答案 0 :(得分:1)

您是否考虑使用弹簧启动执行器来检索健康(以及更多)应用程序信息?

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready

然后,您可以使用另一个微服务从每个服务中检索该信息,或者只是检查它然后点击不同的端点(/ health,/ env等)。

<强>更新

如果你有自定义健康逻辑,你甚至可以为它实现自己的执行器端点。此外,您可以创建自己的库,以便在所有微服务中重用它:

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-customizing-endpoints-programmatically

  

46.4添加自定义端点

     

如果添加类型为Endpoint的@Bean,它将自动通过JMX和HTTP公开(如果有的话)   服务器可用)。 HTTP端点可以进一步自定义   创建一个MvcEndpoint类型的bean。你的MvcEndpoint不是   @Controller但它可以使用@RequestMapping(和@Managed *)来公开   资源。

     

<强> [提示]   如果您将此作为库功能考虑添加一个   使用@ManagementContextConfiguration注释的配置类   密钥下的/META-INF/spring.factories   org.springframework.boot.actuate.autoconfigure.ManagementContextConfiguration。   如果这样做,那么端点将移动到具有all的子上下文   如果您的用户要求单独管理,则使用其他MVC端点   港口或地址。以这种方式声明的配置可以是a   WebConfigurerAdapter是否要添加静态资源(for   实例)到管理端点。