diff --git a/ch4-rpc/ch4-03-netrpc-hack.md b/ch4-rpc/ch4-03-netrpc-hack.md index 817e2f2..85c3ca9 100644 --- a/ch4-rpc/ch4-03-netrpc-hack.md +++ b/ch4-rpc/ch4-03-netrpc-hack.md @@ -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服务时,首先要执行登陆操作,登陆成功后才能正常执行其他的服务。