【问题标题】:is it possible to use OSGI with spring boot microservices? Please tell me in detail是否可以将 OSGI 与 Spring Boot 微服务一起使用?请详细告诉我
【发布时间】:2019-02-05 11:01:59
【问题描述】:

我想使用 ODL 框架进行 SDN 开发,因为内部 OSGI 框架用于 (karaf)。除此之外,我还想使用 spring boot 和 spring cloud 来实现云服务。可以将所有这些框架作为一个单元使用。以及我们如何实现这一点,请告诉我们。

【问题讨论】:

    标签: spring-boot osgi microservices sdn opendaylight


    【解决方案1】:

    这个问题有点过于宽泛和笼统,但我还是会尝试做两个假设来回答它:

    如果您想在 ODL/Karaf 中“进程内”使用 Spring Boot / Cloud,那么答案将是这样的架构几乎没有意义。据我所知,Karaf(不是 ODL)有一些 Spring 支持,但您可能很难将其与 ODL“完美”结合起来......

    ODL 的架构是您定义 YANG 模型,并且您在其中定义的 RPC“自动”公开为 HTTP REST API(通过称为 RESTCONF 的东西),然后您可以从其他应用程序中使用它们。

    但是,如果您的问题只是指您是否可以编写一个单独的新 Spring Boot / Cloud 应用程序并通过远程 RESTCONF 调用 OpenDaylight 服务,那么答案是这当然是可能的 - 以及编写集成的推荐方法.

    顺便说一句:在这种情况下,您可能还对https://lighty.io 感兴趣。

    PS:您也可以查看https://github.com/vorburger/opendaylight-simple/ 以获得一些灵感;但这是一个尚未准备好供您使用的 POC。

    【讨论】:

      【解决方案2】:

      可以在OSGI 容器中使用Spring Boot。 请看我对类似问题的回答:Can Spring Boot be used with OSGi ? If not, any plans to have an OSGi Spring Boot?

      这是Spring Boot + Apache Karaf 演示应用的链接:https://github.com/StasKolodyuk/osgi-spring-boot-demo

      【讨论】:

      • 是的。您可以在 OSGi 中将 Spring Boot 应用程序作为单个捆绑包运行……但是您可以通过它实现什么?它不会让 spring boot 成为一个好的 OSGi 公民——它只会在同一个进程中运行。
      • @ChristianSchneider 同意,在我的演示示例中,我将 Spring Boot jar 嵌入到包本身中,这与 OSGI 理念相矛盾。但是,尽管我在实践中没有尝试过,但我认为可以将 Spring Boot jar 部署为单独的包,您需要以某种方式使用 bnd 工具对其进行转换
      • 我认为这行不通。 Spring 和 Spring Boot 没有准备好拥有每个捆绑的类加载器。所以这很可能会失败。
      猜你喜欢
      • 2021-11-02
      • 2016-10-26
      • 1970-01-01
      • 2015-11-10
      • 2022-12-01
      • 2021-05-27
      • 2019-12-21
      • 2022-11-23
      • 1970-01-01
      相关资源
      最近更新 更多