Hi Thanks for answering my question.Here is my interpretation of your answer
1) My server (A) and client (B) side applications both have grpc support. 2 For my server application (that needs to support live reload), I will create network socket and pass the file descriptor of the client to grpc using " grpc:: AddInsecureChannelFromFd(Server* server, int fd); " 3) Now A and B can communicate to each other using gRPC. Now during hot update server A (linux process) needs to replaced with a new version of server A' (linux process). What's not clear to me is, how to update the channel between: (B and A) to (B and A') without client B having to reconnect? Regards, Hemendra On Saturday, November 6, 2021 at 11:33:59 PM UTC-7 [email protected] wrote: > sorry my mistake i question grpc channeling > > On Sunday, November 7, 2021 at 11:32:27 AM UTC+5 Ali Hassan wrote: > >> I think we need many tools to solve this problem. Assume that your >> application already written in GRPC format. >> 1. Your application does have grpc channel if not then you have following >> ways to achieve. >> 1. GRPC CLIENT STUB ( >> https://grpc.io/docs/what-is-grpc/core-concepts/) >> 2. By using protocol buffer message >> 3. By using protocol buffer message along with language >> supported concurrency >> 2. Whenever you create Grpc channels, you have file_descriptor object >> and which again upto you how to transmit information. >> 3. Now you have channels and application already in grpc, application >> need domain socket which have created or import some libraries. >> 4. During hot update of server application A with A', I want to >> transfer the file descriptor of socket from process A to A' this line make >> me confuse but my approach is server application have own process , sockets >> and each socket have own file descriptor like Docker and Kubernetes. Once >> you have create own process and you have file descriptor objects against >> sockets which will be transmit between server process and server which >> doesn't make any sense and why the grpc channel exist ? >> >> On Sunday, November 7, 2021 at 4:17:15 AM UTC+5 Hemendra Rawat wrote: >> >>> Hi All, >>> >>> I'm new to using gRPC! >>> >>> I'm implementing a gRPC server application that supports live reload of >>> the server with the update version. To achieve this I want to create a unix >>> domain socket and create a gRPC channel using the socket's file descriptor. >>> During hot update of server application A with A', I want to transfer the >>> file descriptor of socket from process A to A' over IPC using UNIX >>> ancillary messages SCM_RIGHTS. Is this transfer possible without disturbing >>> the gRPC channel? >>> >>> I want the clients connection to not break during live reload of server. >>> The client applications already have retries with timeout to account for >>> server downtime. I will really appreciate if someone can advise me as to >>> how to implement this? >>> >>> Regards, >>> Hemendra >>> >> -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/6fa047e6-7620-44ff-a96a-368af80e717bn%40googlegroups.com.
