现在我们有两个微服务。它们是独立的,可以按照自己的及饿节奏进行部署和更新。它们还使用轻量级协议(HTTP)进行交互。但它们是响应式微服务吗?不,他们不是。记住,被称为响应式的微服务必须是:

  • Autonomous--自治的
  • Asynchronous--异步的

  • Resilient--弹性的

  • Elastic---可伸缩的

当前设计的主要问题是两个微服务之间的紧密耦合。web客户端被配置为明确地针对第一个微服务。如果第一个微服务失败,我们将无法通过调用另一个微服务来恢复。如果我们处于高负载状态,创建一个新的hello microservice实例将无法帮助我们。多亏了Vert.x web client的交互是异步的。但是,由于我们不使用虚拟地址(destination)来调用微服务,所以它的直接URL并未给我们提供所需要的可伸缩性和弹性。

需要注意的是,在第二个微服务中使用响应式编程并不会给您带来响应式系统的好处。它提供了一个优雅的开发模型来协调异步操作,但是它并不能提供我们所需要的可伸缩性和弹性。

我们可以使用HTTP来进行响应式微服务吗?是的。但这需要一些基础设施来将虚拟URLs路由到一组服务。我们还需要执行一个负载均衡策略,以提供可伸缩性,并支持健康检查,以提高弹性。

不要失望。在下一节中,我们将向响应式微服务迈出一大步。

results matching ""

    No results matching ""