通过 Web 客户端或某些中间件在 vertx 中的微服务之间进行通信的最佳方式是什么?

Isa*_*ala 1 java vert.x microservices

我在 vert.x 微服务方面做的不多,但我遇到了疑问,不知道使用一些中间件或 Web 客户端相互通信的最佳方式 vert.x,使用某些中间件或 Web 客户端,或任何其他方式.x 允许我。

Idr*_*ann 5

允许 vert.x 微服务在它们之间进行通信有无限的可能性,每个都有优点和缺点,并且根据上下文或多或少具有相关性。

以下是3种常用方法:

1)使用原生vert.x eventBus(异步逻辑):https ://vertx.io/docs/vertx-core/java/#event_bus(-cluster当你需要处理通信时,你可以使用Hazelcast Cluster Manager使用该选项在不同的 JVM pid 之间:https ://vertx.io/docs/vertx-hazelcast/java/ )。

2)使用像Apache Kafka这样的消息代理系统(有时你需要具有重播机制的持久化消息队列,我认为它比vert.x的事件总线更强大,有时你需要与多种语言编写的微服务和vert.x进行通信事件总线与此无关)或旧式 JMS 兼容系统,如 ActiveMQ、RabbitMQ 和 cie。

3) 有时暴露简单的 Restful api 更相关,所以你可以使用vertx-web扩展来做到这一点:https : //vertx.io/docs/vertx-web/java/