代码之家  ›  专栏  ›  技术社区  ›  Ruslan Akhundov

Vertx:在垂直线之间传递附加变量

  •  0
  • Ruslan Akhundov  · 技术社区  · 6 年前

    我有一个服务,它主要代理另一个服务器,在其响应中添加一些业务逻辑。所以它只接收一个请求,将类似的请求发送到另一个服务器(应该使用请求附带的特定用户cookie发送),对响应应用一些更改,然后将其发送回用户。

    我将vertx与rxjava结合使用,目前我有两个verticle。

    evenBus :

     router.route().handler(routingContext -> {
         someService.handleRequest()
                    .subscribe(res -> ...send response...);
     }
    

    就在这个世界的某个地方 handleRequest 有一个呼叫到另一个垂直点:

         eventBus.rxSend(address, message, deliveryOptions); 
    

    另一个verticle侦听此地址并将请求发送到另一个服务器:

     eventBus.consumer(address)
             .toObservable()
             .subscribe(message -> {
                 response = anotherService.handleMessage(message);
                 message.reply(response.body());
             });
    

    就在这个世界的某个地方 handleMessage 它叫vertx httpclient 向其他服务器发出请求:

    response = client.get(...);
    

    此请求应包含来自在第一个垂直路由上下文中接收的初始请求的cookie值。

    routingContext 到vertx httpclient客户端 在另一个垂直方向(我不想通过在任何地方添加新的方法参数来更改接口,它应该隐式处理)

    headers 在里面 DeliveryOptions . 把手要求 / 手语 没有modyfing方法签名)?(可能存储在verticle上下文中?)

    0 回复  |  直到 6 年前