Go Inter-Process Communication

后端 未结 3 2057
长发绾君心
长发绾君心 2020-12-07 13:04

I\'m writing a load balanced server system in Go.

The load balancing server will communicate with several application servers and process requests. These servers can

3条回答
  •  隐瞒了意图╮
    2020-12-07 14:10

    Go has a built-in RPC system (http://golang.org/pkg/rpc/) for easy communication between Go processes.

    Another option is to send gob-encoded data (http://blog.golang.org/2011/03/gobs-of-data.html) via network connection.

    You shouldn't dismiss local networking without benchmarking. For example Chrome uses named pipes for IPC and they transfer a lot of data (e.g. rendered bitmaps) between processes:

    Our main inter-process communication primitive is the named pipe. On Linux & OS X, we use a socketpair()

    -- http://www.chromium.org/developers/design-documents/inter-process-communication

    If named pipes are good enough for that, they are probably good enough for your use case. Plus, if you write things well, you could start using named pipes (because it's easy) and then switch to shared memory if you find performance of named pipes not good enough (shared memory is not easy regardless of the language).

提交回复
热议问题