【发布时间】: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