go 简单的rpc服务

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查看具体信息

转载于:https://my.oschina.net/isxiaoge/blog/1582254

你可能感兴趣的:(go 简单的rpc服务)