如何 运行 多个 Spring 引导应用程序共享相同的上下文?
How to run multiple Spring Boot application sharing same context?
我想要 运行 多个微服务应用程序共享相同的上下文,以便我可以 运行 我的自定义安全过滤器用于多个 spring 启动(微服务)应用程序。
示例:
用户服务:https://ip:port/myapp/user
产品服务:https://ip:port/myapp/product
评论服务:https://ip:port/myapp/comment
而且我应该 运行 所有微服务的通用过滤器(自定义安全过滤器)。
将该过滤器提取到单独的 JAR 中,供每个微服务使用。该 JAR 将作为单独的项目进行版本控制并独立部署到您的工件存储库中。
事实上,在微服务环境中,您将有更多 "common" beans/functionality 应该跨服务共享。因此这种通用的JAR在微服务环境中是很有必要的。
正如@luboskrnac 所建议的那样 - 为了安全起见,您可以简单地将通用逻辑提取到一个单独的 JAR 中。
关于您的共享应用程序上下文(我假设您只是指共享 URL space,而不是在应用程序之间共享任何特定状态等),那么是的 - 您应该使用一些东西像 Zuul
- 这可以充当外部和所有微服务之间的单一接口(在引擎盖下,在它们自己独特的应用程序上下文中都是 运行 数字 namespace/port - 但 Zuul
可以将它们组合在一起并在一致的位置上使用漂亮的 URLs 公开它们。
幸运的是,整个 Netflix microservice 堆栈得到了 Spring 的良好支持,因此可以直接起床 运行 Zuul
和 Eureka
(发现服务)。
我在这里写了一个 hello-world
堆栈设置(连同代码):http://automateddeveloper.blogspot.co.uk/2015/09/spring-boot-netflix-oss-adventure-into.html
我想要 运行 多个微服务应用程序共享相同的上下文,以便我可以 运行 我的自定义安全过滤器用于多个 spring 启动(微服务)应用程序。
示例:
用户服务:https://ip:port/myapp/user
产品服务:https://ip:port/myapp/product
评论服务:https://ip:port/myapp/comment
而且我应该 运行 所有微服务的通用过滤器(自定义安全过滤器)。
将该过滤器提取到单独的 JAR 中,供每个微服务使用。该 JAR 将作为单独的项目进行版本控制并独立部署到您的工件存储库中。
事实上,在微服务环境中,您将有更多 "common" beans/functionality 应该跨服务共享。因此这种通用的JAR在微服务环境中是很有必要的。
正如@luboskrnac 所建议的那样 - 为了安全起见,您可以简单地将通用逻辑提取到一个单独的 JAR 中。
关于您的共享应用程序上下文(我假设您只是指共享 URL space,而不是在应用程序之间共享任何特定状态等),那么是的 - 您应该使用一些东西像 Zuul
- 这可以充当外部和所有微服务之间的单一接口(在引擎盖下,在它们自己独特的应用程序上下文中都是 运行 数字 namespace/port - 但 Zuul
可以将它们组合在一起并在一致的位置上使用漂亮的 URLs 公开它们。
幸运的是,整个 Netflix microservice 堆栈得到了 Spring 的良好支持,因此可以直接起床 运行 Zuul
和 Eureka
(发现服务)。
我在这里写了一个 hello-world
堆栈设置(连同代码):http://automateddeveloper.blogspot.co.uk/2015/09/spring-boot-netflix-oss-adventure-into.html