公开 jhipster 微服务客户端 类
expose jhipster microservice client classes
我有两个用 jhipster 创建的微服务。 (ms1 和 ms2)
我已经使用AuthorizedFeignClient在两个微服务之间进行通信
ms1 有一些 DTO 类,用作 REST APIs 的输入和输出 类。
从 ms2 我需要调用 ms1 的一些 API,因此我需要那些 DTO 类(POJO) 作为输入和输出数据。
这些DTO类在ms2中显然是没有的
所以我目前有两个选择:
1) 将 DTO 类 从 ms1 复制到 ms2
2) 将 ms1 作为 maven 依赖项导入 ms2
方法 1 - 看似简单,但会有重复代码。
方法 2 - ms1 和 ms2 都打包为 war 文件而不是 jar 文件。包含整个 war 文件只是为了使用一些 类.
看起来不太好
我应该采取哪些其他方法来将这些 DTO 类 从 ms1 获取到 ms2?
如果你搜索微服务架构,你会发现很多人建议微服务之间不要共享任何东西,因为你希望能够尽可能独立地发展它们。这意味着您的方法 1 是首选,您可以添加第三种方法,即从 swagger JSON spec 生成 REST 客户端代码。 JHipster 有一个模块可以这样做:https://github.com/cbornet/generator-jhipster-swagger-cli
服务之间的通信通常也是需要仔细考虑的事情,这可能表明您的服务边界是错误的。
我有两个用 jhipster 创建的微服务。 (ms1 和 ms2)
我已经使用AuthorizedFeignClient在两个微服务之间进行通信
ms1 有一些 DTO 类,用作 REST APIs 的输入和输出 类。
从 ms2 我需要调用 ms1 的一些 API,因此我需要那些 DTO 类(POJO) 作为输入和输出数据。
这些DTO类在ms2中显然是没有的
所以我目前有两个选择:
1) 将 DTO 类 从 ms1 复制到 ms2
2) 将 ms1 作为 maven 依赖项导入 ms2
方法 1 - 看似简单,但会有重复代码。
方法 2 - ms1 和 ms2 都打包为 war 文件而不是 jar 文件。包含整个 war 文件只是为了使用一些 类.
看起来不太好我应该采取哪些其他方法来将这些 DTO 类 从 ms1 获取到 ms2?
如果你搜索微服务架构,你会发现很多人建议微服务之间不要共享任何东西,因为你希望能够尽可能独立地发展它们。这意味着您的方法 1 是首选,您可以添加第三种方法,即从 swagger JSON spec 生成 REST 客户端代码。 JHipster 有一个模块可以这样做:https://github.com/cbornet/generator-jhipster-swagger-cli
服务之间的通信通常也是需要仔细考虑的事情,这可能表明您的服务边界是错误的。