golang rpc实例分析
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 简单来说,就是跟远程访问或者web请求差不多,都是一个client向远端服务器请求服务返回结果,但是web请求使用的网络协议是http高层协议,而rpc所使用的协议多为TCP,是网络层协议,减少了信息的包装,加快了处理速度。 golang本身有rpc包,可以方便的使用,来构建自己的rpc服务,下边是一个简单是实例,可以加深我们的理解 它的工作流程如下图: golang 使用 RPC的例子如下: 服务器端代码: 这里暴露了一个RPC接口,一个HTTP接口 package main import ( type Watcher int func (w *Watcher) GetInfo(arg int,result *int) error { func main() { http.HandleFunc("/ghj1976",Ghj1976Test) watcher := new(Watcher) l,err := net.Listen("tcp",":1234") func Ghj1976Test(w http.ResponseWriter,r *http.Request) { 客户端代码: package main import ( func main() { 服务器端代码执行截图 客户端代码执行截图 HTTP网页执行截图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |