小编a20*_*umb的帖子

从UI的角度来看,异步微服务通信如何表现得更好?

在我的 Angular UI 中,我从 API 网关调用了一个端点,例如:

this.http.post(`/order`).subscribe(order => addNewOrderToList(order));
Run Code Online (Sandbox Code Playgroud)

根据微服务的最佳实践,/order处理程序应该发布一个由一个或多个微服务使用的事件,而不是使用同步 REST 相互调用。因此,我编写了以下处理程序:

@RequestMapping
public Future<Order> addOrder() {
  CompletableFuture<Order> future = new CompletableFuture<>();
  // publish event
  // ...
  // wait for final event raised by a service.
  future.complete(createdOrder);
  return future;
}
Run Code Online (Sandbox Code Playgroud)

从 UI 的角度来看,在我的端点返回新订单之前,用户不是不会看到新订单吗?我觉得即使后端是异步的,UI 仍然是同步的。在这种情况下,改进 UI 的最佳做法是什么?

spring asynchronous event-driven microservices angular

2
推荐指数
1
解决办法
1031
查看次数