gpt4 book ai didi

microservices - 我需要构建一个 Vert.x 虚拟主机服务器,将流量引导到其他 Vert.x 应用程序。这种应用间通信是如何实现的?

转载 作者:行者123 更新时间:2023-12-04 06:29:23 26 4
gpt4 key购买 nike

Vert.x virtual host server for other vert.x apps

如上所示,我需要构建一个 Vert.x Java 应用程序,该应用程序将作为 HTTP 服务器/虚拟主机(TLS Http 流量、Web 套接字流量),它将重定向/ channel 特定域流量到其他 Vert.x Java 应用程序上运行的同一台服务器,每个服务器都有自己的 JVM。

我已经阅读了几天,但我仍然不确定如何处理任务的各个方面。

我所知道或有过的经验:

  • 创建 HTTP 服务器等
  • 使用 Vert.x VirtualHost 处理程序“处理”传入流量
    特定域

  • 我不知道的:
  • 如何将域的流量“重定向”到另一个 Vert.x 应用程序(这个
    其他 Vert.x 应用程序也将运行在同一台服务器上,单独运行
    JVM)。

    - 当然,这个“其他”Vert.x 应用程序需要响应 HTTP
    请求等。我采用什么 Vert.x 机制来实现这一点
    任务的方面?

  • 以下任何概念是解决方案的一部分吗?我不熟悉这些概念以及它们如何构成或不构成解决方案的一部分。:
  • 使用 -cluster 选项运行每个 Vert.x 应用程序?
  • Vert.x 流?
  • Vert.x 泵?
  • 最佳答案

    有多种方法可以让您的微服务相互通信,您的所有应用程序都在同一台服务器上运行这一事实并没有太大变化,但它使数字 2.)易于配置

    1.) 基于休息的客户端 - 服务器通信

  • 主机和应用程序都有一个网络服务器
  • 当您处理主机上的传入请求时,您只需使用 HttpClient
  • 调用另一个应用程序

    enter image description here

    通常,所有服务都通过 service discovery 找到彼此的地址.
    例如:每个服务在中央注册表中注册他的地址,然后其他服务使用这个中央注册表来查找地址。

    注意:这对您来说可能有点矫枉过正,您只需配置其他服务的地址即可。

    2.) 您以集群模式启动 vertx 微服务
  • 然后事件总线在服务之间共享
  • 对于所有传入请求,您在事件总线上发送广播
  • 负责应用回复消息

  • enter image description here

    如需进一步阅读,您可以查看 https://vertx.io/docs/vertx-hazelcast/java/#configcluster .您使用 -cluster 选项启动项目并在 xml 配置中定义集群。我认为默认情况下它通过本地广播找到服务。

    3.) 您使用消息代理,如 RabbitMq 等。
  • 您的所有应用程序都连接到中央消息代理
  • 当主机收到新请求时,它会向消息代理
  • 发送一条消息。
  • 负责的应用然后监听相关消息并回复
  • 主机收到消息代理的回复

  • enter image description here

    对于某些消息代理,例如 kafka、camel、zeromq,已经有许多现有的 vertx 客户端:

    https://github.com/vert-x3/vertx-awesome#integration

    关于microservices - 我需要构建一个 Vert.x 虚拟主机服务器,将流量引导到其他 Vert.x 应用程序。这种应用间通信是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53732817/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com