rcp:远程过程调用-就像是本地调用方法一样简单,java中的rpc框架用的比较多的是阿里的dubbo(最近又开始维护了)
go 提供了rpc的开发包 net/rpc
下面通过例子来感受下
服务:
type Echo int func (t * Echo)Hi(args string, reply *string) error { // 想要使用go的rpc方法要使用这种格式一个接受参数,一个返回的参数,返回的异常 *reply = "echo"+args return nil } func main() { rpc.Register(new(Echo)) // 注册rpc服务 rpc.HandleHTTP() // 采用http协议 l, _ := net.Listen("tcp",":8099") http.Serve(l,nil) }
客户端
func main() { c,_ := rpc.DialHTTP("tcp","192.168.3.143:8099") var args ="hello word" var reply string error := c.Call("Echo.Hi",args,&reply) // 远程调用 if error != nil { log.Fatal(error) } fmt.Print(reply) }
还可以通过url:port/debug/rpc查看具体信息