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.

Reply via email to