【问题标题】:User Interface(UI) as a different microservice in springboot用户界面(UI)作为 Spring Boot 中的不同微服务
【发布时间】:2019-02-24 21:32:29
【问题描述】:

我有多个微服务,每个微服务用于特定的任务/活动。我正在使用 UREKA 和网关服务。

所以我的问题是我应该有不同的 UI 微服务来处理所有微服务的 UI 活动吗? 还是我应该让相应的微服务处理 UI 部分?

是的,这个问题的答案是业务需求。

我的需要是我应该有不同的 UI 微服务。 所以再次出现以下架构问题,请帮助解决它。

UI 微服务:用户请求 HTML,请求绑定到适当的对象,比如 Employee POJO。我将处理该 pojo 中的所有 UI 验证和控制器中的其他自定义验证。
验证成功后,我对员工微服务进行 feign API 调用以保存员工对象。

员工微服务:这个微服务将只包含 RestController,因为这里没有 UI 活动。以上调用由适当的控制器接收,并将 Employee 对象绑定到 Employee 微服务的 Employee 对象中。 然后这个员工对象传递到服务层并转换为适当的 JPA 并保存到数据库中。

请参阅此处,我的 Employee 类在 UI 微服务和 Employee 微服务中得到了重复。 这是我的问题,我们如何消除 Employee 类的重复? 由于我的 UI 微服务处理所有其他微服务的 UI 部分,那么我所有的微服务 POJO 将在 UI 服务中复制,即开销修改任务和复制。 一种解决方案是将UI微服务的Employee Object直接绑定到另一个服务的JPA Pojo,但我不想在服务层之前公开JPA POJO。还是这是好方法?

有解决办法吗?有什么设计模式吗?

【问题讨论】:

  • 微服务与 UI 和 UI 是完全正交的概念,因为微服务听起来有点不对劲。当前趋势是在微服务之上实现单页应用程序 (SPA)(JAMstack 方法是最好的例子之一)。
  • UI 微服务或服务或应用程序,不管是什么,但我关心的是重复 POJO 的问题。

标签: java spring spring-boot microservices pojo


【解决方案1】:

UI 微服务或服务或应用程序,无论是什么,但问题 重复的 POJO 是我的担心

如果这是您唯一担心的问题,那是微服务的祸根,代码重复。

你有创造性的方法来解决这个问题

  1. 通过发布带有所有共享 POJO 的 jar

  1. 将所有代码库放在一个 monorepo 中并构建为单独的 jar(恭喜,尽管您的应用将是微服务,但您现在拥有一个整体代码库)。

恕我直言,不要只是挂在那里。如果你的微服务 A 是用 JVM 语言编写的,而微服务 B 是用 go 编写的,那会怎样。你不能在那里共享任何类型的类(AKA POJO)。

顺便说一句,我不会有 UI 微服务。我宁愿有一个单页应用程序(例如 Angular/React/Vue/Yet-another-javascript-framework)

【讨论】:

  • 我宁愿有一个单页应用程序。请你能详细解释一下吗?有什么例子吗?
猜你喜欢
  • 1970-01-01
  • 2020-04-16
  • 2018-12-03
  • 1970-01-01
  • 2018-08-21
  • 2019-12-04
  • 1970-01-01
  • 2020-06-08
  • 2019-09-02
相关资源
最近更新 更多