public Mono < ServiceMessage > requestOne ( ServiceMessage request , Class < ? > responseType ) { return Mono . defer ( ( ) -> { String qualifier = request . qualifier ( ) ; if ( methodRegistry . containsInvoker ( qualifier ) ) { // local service. return methodRegistry . getInvoker ( request . qualifier ( ) ) . invokeOne ( request , ServiceMessageCodec :: decodeData ) . map ( this :: throwIfError ) ; } else { return addressLookup ( request ) . flatMap ( address -> requestOne ( request , responseType , address ) ) ; // remote service } } ) ; }
Issues request - and - reply request .