如何运行共享相同上下文的多个Spring Boot应用程序



我想运行多个共享相同上下文的微服务应用,这样我就可以为多个spring boot(微服务)应用运行自定义安全过滤器。

的例子:

用户服务:https://ip:port/myapp/user

产品服务:https://ip:port/myapp/product

评论服务:https://ip:port/myapp/comment

我应该为所有微服务运行一个公共过滤器(自定义安全过滤器)

正如@luboskrnac建议的那样——出于安全性考虑,您可以简单地将公共逻辑提取到一个单独的JAR中。

关于你的共享应用程序上下文(我假设你只是指共享URL空间,而不是在应用程序之间共享任何特定状态等),那么是的-你应该使用像Zuul这样的东西-这可以作为外部和所有微服务之间的单一接口(其中,在底层,它们都运行在自己独特的应用程序上下文命名空间/端口号中——但是Zuul可以将它们组合在一起,并在一致的位置上使用漂亮的url公开它们)。

幸运的是,整个Netflix微服务堆栈都得到了Spring的良好支持,因此可以直接使用ZuulEureka(发现服务)启动和运行。

我有一个hello-world的堆栈设置写在这里(连同代码):http://automateddeveloper.blogspot.co.uk/2015/09/spring-boot-netflix-oss-adventure-into.html

将该过滤器提取到每个微服务将使用的单独JAR中。该JAR将是单独的项目版本,并独立地部署到您的工件存储库中。

事实上,在微服务环境中,你将有更多的"公共"bean/功能,它们应该在服务之间共享。因此,这种通用JAR在微服务环境中是必要的。

最新更新