grpc-java icon indicating copy to clipboard operation
grpc-java copied to clipboard

PoC: client channels

Open bsideup opened this issue 3 months ago • 6 comments

This PR (based off #3987) proposes a potential implementation for Client Channels that allow server call services on connected clients.

The current implementation uses a bi-directional call as a transport by implementing an in-memory Netty channel due to the complexity of the underlying representation. A custom Marshaller is used for zero copy operations, to prevent additional buffers from being created. That is achieved with a custom Drainable implementation and a HasByteBuffer consumer.

The final version should of course be using a custom implementation of both ManagedChannel and InternalServer.

See https://github.com/grpc/grpc/issues/14101 for the main discussion.

bsideup avatar Mar 16 '24 00:03 bsideup

CLA Not Signed

  • :x: - login: @bsideup / name: Sergei Egorov . The commit (cfd19fd285d40b99443b0f9e12529793948c1a4e, 053ab0fd2f15dab068a1bf818ccd36578c6fef7a, 44bf0d77c5bfc5c10468e4f4bbc82510312ee170, 31d2df2d6daaea71b0bf5c84f1c03c8931438596, 20b2d398e624c211858a38a5676d0a7e85692578) is not authorized under a signed CLA. Please click here to be authorized. For further assistance with EasyCLA, please submit a support request ticket.

Quick Update:

I was able to connect a grpc-go based client (exposing service) to grpc-java Netty-based server that successfully called a service defined on the client: https://gist.github.com/bsideup/49a031c3360a68e4542e5597669fe51d

bsideup avatar Mar 16 '24 20:03 bsideup