美文网首页折腾博客hexogo边开发边go
2019-11-01 从零开始go的rpc学习- 知识铺

2019-11-01 从零开始go的rpc学习- 知识铺

作者: 知识铺 | 来源:发表于2019-11-01 14:59 被阅读0次

知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停地来唤醒记忆深处的知识点。
一、 go 原生 rpc

定义服务端:


// 1. 定义实体类型
type Gstus struct {}


/*
   2. 定义service fun
Go语言的RPC规则:方法只能有两个可序列化的参数,
                 其中第二个参数是指针类型,
                并且返回一个error类型,同时必须是公开的方法
*/
func (p Gstus) Printgs(request string, reply *string) error {
    *reply = "ok:"+request
    return nil
}

func main() {
    // 3. 注册
    rpc.RegisterName("tgs",new(Gstus))

    listener, err := net.Listen("tcp", ":1234")
    if err != nil {
        log.Fatal("ListenTCP error:", err)
    }

    conn, err := listener.Accept()
    if err != nil {
        log.Fatal("Accept error:", err)
    }

    // 4. 开启服务端 并监听注册端口
    rpc.ServeConn(conn)

}

定义客户端

package main

import (
    "fmt"
    "log"
    "net/rpc"
)

func main() {
    client, err := rpc.Dial("tcp", "localhost:1234")
    if err != nil {
        log.Fatal("dialing:", err)
    }

    var reply string
    err = client.Call("tgs.Printgs", "hello", &reply)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(reply)

}

结果:

ok:hello

推荐阅读:

本文由zshipu.com学习笔记或整理或转载,如有侵权请联系,必改之。

相关文章

  • 2019-11-01 从零开始go的rpc学习- 知识铺

    知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停地来唤醒记忆深处的知识点。一、...

  • Go RPC

    Go RPC Go 原生的网络RPC需要关联Go的net框架和库内容(net,tpc,http等等) 理论 总体来...

  • grpc

    Go的RPC标准库 简单使用 Go语言标准库(net/rpc)的RPC规则:方法只能有两个可序列化的参数,其中第二...

  • golang中的net/rpc包

    本文先介绍RPC,然后go原生对RPC的使用,之后是介绍go语言中有哪些RPC框架以及一些其他常见的框架,最后是探...

  • go-zero开发-rpc

    通过修改go-zero rpc的模板 下方指令用于生成rpc服务

  • 【golang微服务】RPC原理与Go RPC

    本文介绍了RPC的概念以及Go语言中标准库rpc的基本使用。 什么是RPC RPC(Remote Procedur...

  • #知识学习之Json-RPC

    知识学习之Json-RPC JSON-RPC技术 JSON-RPC是一个无状态且轻量级的远程过程调用(RPC)协议...

  • Micro (3)

    go-micro RPC框架源码分析 最近由于辞职,心想着要好好研究下RPC的实现,于是乎,就拿go-micro开...

  • Go RPC

    什么是RPC? RPC全称Remote Procedure Call译为远程过程调用 RPC是一个计算机通信协议,...

  • go rpc 入门

    go rpc 入门 rpc(Romote Procedure Call,远程过程调用)。相对应的就是本地过程调用,...

网友评论

    本文标题:2019-11-01 从零开始go的rpc学习- 知识铺

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