美文网首页个人学习
GO微服务入门:什么是微服务

GO微服务入门:什么是微服务

作者: voidFan | 来源:发表于2021-07-04 21:16 被阅读0次

    微服务入门

    理解RPC

    • 像调用本地函数一样,调用远程函数。

    GO Socket通信

    server端

    net.Listen()       ----> listener 创建监听器
    listener.Accept()  ----> conn 启动监听器,建立连接
    conn.Read()
    conn.Write()
    defer conn.Close()/listener.Close()
    

    client端

    net.Dial()        ----> conn
    conn.Write()
    conn.Read()
    defer conn.Close()
    

    GO RPC

    server端

    // 1. 注册rpc服务对象。给对象绑定方法(1. 定义类, 2. 绑定类方法)
    rpc.RegisterName("服务名", 回调对象)
    // 2. 创建监听器
    listener, err := net.Listen()
    // 3. 建立连接
    conn, err := listener.Accept()
    // 4. 将连接绑定rpc服务
    rpc.ServeConn(conn)
    

    client端

    // 1. 用rpc连接服务器
    conn, err := rpc.Dial()
    // 2. 调用远程函数
    conn.Call("服务名.方法名", 传入参数, 传出参数)
    

    RPC相关函数

    • 调用远程函数 func (c *Client) Call(serviceMethod string, args interface{}, reply interface{}) error
    • 绑定rpc服务 func (s *Server) ServeConn(conn io.ReadWriteCloser)
    • 注册rpc服务 func (s *Server) RegisterName(name string, rcvr interface{}) error
      rcvr对应rpc对象,该对象绑定方法需要满足如下条件:
      a. 方法必须是导出的(包外可见,首字母大写)
      b. 方法必须有两个参数, 都是导出类型、内建类型
      c. 方法的第二个参数必须是"指针"(传出参数)
      d. 方法只有一个 error 接口类型的返回值。

    相关文章

      网友评论

        本文标题:GO微服务入门:什么是微服务

        本文链接:https://www.haomeiwen.com/subject/dnevultx.html