当前位置: 首页 > 面试题库 >

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

琴修为
2023-03-14
问题内容

我在vert.x微服务中没有做太多事情,但是我遇到了一个疑问,即使用一些我不知道的中间件或Web客户端或其他任何方式来相互了解错误服务vert.x的最佳通信方式.x允许我。


问题答案:

允许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/



 类似资料:
  • 我在微服务之间的通信上遇到了麻烦。我有许多spring boot应用程序,它们之间有许多请求HTTP和AMQP(RabbitMQ)。在本地(在dev中),我使用没有Docker图像的Eureka(Netflix Oss)。

  • 我有几个Node.js微服务在Kubernetes中运行,现在我需要找到一种在它们之间进行通信的方法。我正在考虑公开一个endpoint,该endpoint只能从其他Pod内部访问。我已经找了几个小时,但没有找到一个足够安全的解决方案。有没有办法让它这样运作呢?谢谢!

  • 我正在构建一个基于Spring云的微服务ML管道。我有一个数据摄取服务,它(当前)从SQL接收数据,这些数据需要被预测服务使用。 普遍的共识是写入应该使用kafka/Rabbitmq使用基于异步消息的通信。 我不确定的是如何编排这些服务? 我是否应该使用API网关来调用启动管道的摄取?

  • 编辑:最后,问题似乎来自io.emit()中缺少第二个参数。现在它起作用了,非常感谢:)

  • 问题内容: 我知道这并不是一件容易的事,但是很遗憾,自昨天以来我一直被困在这里并与之抗争。我遵循了Android互助身份验证教程,将密钥库放置在资源中并尝试通过SSL连接到我的服务器,但是得到以下异常 java.lang.RuntimeException:org.spongycastle.jcajce.provider.asymmetric.x509.CertificateFactory $ Ex