1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 04:22:22 +00:00

ch4-03-fix typos

This commit is contained in:
sfw 2018-07-05 18:57:32 +08:00
parent a46395cfdd
commit 90cf3d81f8

View File

@ -4,7 +4,7 @@
## 反向RPC
通常的RPC是基于C/S结构RPC的服务端对应网络的服务器RPC的客户端也对应网络客户端。但是对于一些特殊场景比如在公司内网提供一个RPC服务但是在外网无法链接到内网的服务器。这种时候我们可以参考类似反向代理的技术首先从内网主动链接到外网的TCP服务器然后基于TCP链接向外网提供RPC服务。
通常的RPC是基于C/S结构RPC的服务端对应网络的服务器RPC的客户端也对应网络客户端。但是对于一些特殊场景比如在公司内网提供一个RPC服务但是在外网无法链接到内网的服务器。这种时候我们可以参考类似反向代理的技术首先从内网主动链接到外网的TCP服务器然后基于TCP链接向外网提供RPC服务。
以下是启动反向RPC服务的代码
@ -53,7 +53,7 @@ func main() {
}
```
每个链接建立后基于网络链接构造RPC客户端对象并发送到clientChan管道。
当每个链接建立后基于网络链接构造RPC客户端对象并发送到clientChan管道。
客户端执行RPC调用的操作在doClientWork函数完成
@ -72,7 +72,7 @@ func doClientWork(clientChan <-chan *rpc.Client) {
}
```
首先从管道去除一个RPC客户端对象并且通过defer语句指定在函数退出钱关闭客户端。然后是执行正常的RPC调用。
首先从管道去取一个RPC客户端对象并且通过defer语句指定在函数退出前关闭客户端。然后是执行正常的RPC调用。
## 上下文信息
@ -148,4 +148,4 @@ func (p *HelloService) Hello(request string, reply *string) error {
}
```
这样可以要求在客户端链接RPC服务时首先要执行登陆操作登陆成后才能正常执行其他的服务。
这样可以要求在客户端链接RPC服务时首先要执行登陆操作登陆成后才能正常执行其他的服务。