我想运行多个微服务应用程序共享相同的上下文,以便我可以为多个Spring启动(微服务)应用程序运行我的自定义安全过滤器。
示例:
用户服务:https://ip:port/myapp/user
产品服务:https://ip:port/myapp/product
评论服务:https://ip:port/myapp/comment
我应该为所有微服务运行一个通用过滤器(自定义安全过滤器)。
答案 0 :(得分:0)
将该过滤器提取到每个微服务将使用的单独JAR中。该JAR将独立项目版本化并独立部署到您的工件库中。
事实上,在微服务环境中,您将拥有更多应该在服务之间共享的“通用”bean /功能。因此,在微服务环境中,这种常见的JAR是必需的。
答案 1 :(得分:0)
正如@luboskrnac建议的那样 - 为了安全起见,您可以简单地将您的公共逻辑提取到一个单独的JAR中。
关于您的共享应用程序上下文(我假设您只是指共享URL空间,而不是在应用程序之间共享任何特定状态等),那么是 - 您应该使用类似Zuul
的内容 - 这可以采取行动作为外部和所有微服务之间的单一接口(在引擎盖下它们都将在它们自己独特的应用程序上下文命名空间/端口号中运行 - 但是Zuul
可以将它们组合在一起并在一致的情况下使用漂亮的URL公开它们位置)。
幸运的是,整个Netflix microservice堆栈得到了Spring的良好支持,所以它可以合理地直接启动并运行Zuul
和Eureka
(发现服务)。
我在这里写了一个hello-world
堆栈设置(以及代码):http://automateddeveloper.blogspot.co.uk/2015/09/spring-boot-netflix-oss-adventure-into.html