如上所示,我需要构建一个 Vert.x Java 应用程序,该应用程序将作为 HTTP 服务器/虚拟主机(TLS Http 流量、Web 套接字流量),它将重定向/ channel 特定域流量到其他 Vert.x Java 应用程序上运行的同一台服务器,每个服务器都有自己的 JVM。
我已经阅读了几天,但我仍然不确定如何处理任务的各个方面。
我所知道或有过的经验:
特定域
我不知道的:
其他 Vert.x 应用程序也将运行在同一台服务器上,单独运行
JVM)。
- 当然,这个“其他”Vert.x 应用程序需要响应 HTTP
请求等。我采用什么 Vert.x 机制来实现这一点
任务的方面?
以下任何概念是解决方案的一部分吗?我不熟悉这些概念以及它们如何构成或不构成解决方案的一部分。:
最佳答案
有多种方法可以让您的微服务相互通信,您的所有应用程序都在同一台服务器上运行这一事实并没有太大变化,但它使数字 2.)易于配置
1.) 基于休息的客户端 - 服务器通信
通常,所有服务都通过 service discovery 找到彼此的地址.
例如:每个服务在中央注册表中注册他的地址,然后其他服务使用这个中央注册表来查找地址。
注意:这对您来说可能有点矫枉过正,您只需配置其他服务的地址即可。
2.) 您以集群模式启动 vertx 微服务
如需进一步阅读,您可以查看 https://vertx.io/docs/vertx-hazelcast/java/#configcluster .您使用 -cluster 选项启动项目并在 xml 配置中定义集群。我认为默认情况下它通过本地广播找到服务。
3.) 您使用消息代理,如 RabbitMq 等。
对于某些消息代理,例如 kafka、camel、zeromq,已经有许多现有的 vertx 客户端:
https://github.com/vert-x3/vertx-awesome#integration
关于microservices - 我需要构建一个 Vert.x 虚拟主机服务器,将流量引导到其他 Vert.x 应用程序。这种应用间通信是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53732817/