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

时间:2018-04-02 17:08:45

标签: java microservices vert.x

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

1 个答案:

答案 0 :(得分:1)

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

以下是3种常见方式:

1)使用原生vert.x eventBus( 异步逻辑):https://vertx.io/docs/vertx-core/java/#event_bus(当您需要处理不同JVM pid之间的通信时,可以使用-cluster选项使用Hazelcast Cluster Manager: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/