【问题标题】:How to run multiple Spring Boot application sharing same context?如何运行共享相同上下文的多个 Spring Boot 应用程序?
【发布时间】:2016-12-17 18:51:24
【问题描述】:

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

例子:

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

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

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

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

【问题讨论】:

    标签: spring spring-security spring-boot microservices


    【解决方案1】:

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

    事实上,在微服务环境中,您将拥有更多应该跨服务共享的“通用”bean/功能。因此,在微服务环境中,这样的通用 JAR 是必要的。

    【讨论】:

    【解决方案2】:

    正如@luboskrnac 建议的那样 - 为了安全起见,您可以简单地将通用逻辑提取到单独的 JAR 中。

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

    幸运的是,整个 Netflix microservice 堆栈都受到 Spring 的良好支持,因此使用 ZuulEureka(发现服务)启动和运行是相当直接的。

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

    【讨论】:

      猜你喜欢
      • 2015-07-26
      • 2010-12-14
      • 2019-09-22
      • 2017-08-17
      • 2017-02-23
      • 2015-12-30
      • 1970-01-01
      • 2011-05-30
      • 2017-02-12
      相关资源
      最近更新 更多