当前位置: 首页 > wzjs >正文

渭南免费做网站友链申请

渭南免费做网站,友链申请,安卓app制作入门教程,网页设计图片加背景更多个人笔记:(仅供参考,非盈利) gitee: https://gitee.com/harryhack/it_note github: https://github.com/ZHLOVEYY/IT_note 文章目录 rpc基础概念GO的rpc应用简单编写json编写rpc rpc基础概念 电商系统…

更多个人笔记:(仅供参考,非盈利)
gitee: https://gitee.com/harryhack/it_note
github: https://github.com/ZHLOVEYY/IT_note

文章目录

    • rpc基础概念
    • GO的rpc应用
      • 简单编写
      • json编写rpc

rpc基础概念

电商系统迅速发展后,有很多服务需要拆分,比如用户服务,商品服务,支付服务,订单服务,售后服务等 这些服务之间的相互调用就需要使用rpc

rpc框架:
在这里插入图片描述

服务注册中心:负责本地服务发布为远程服务,管理提供给消费者
消费者:通过远程代理对象调用远程服务
服务提供者:提供接口和相关服务

rpc框架可以跨语言,协议私密,传输效率也很高

GO的rpc应用

官方的net/rpc包对于方法有定义要求符合:

func (t *T) MethodName (argType T1, replyType *T2) error

其中T,T1,T2需要被encoding/gob包序列化(就是说不同编码器都需要适用)
第一个参数是调用者需要传递的参数
第二个是会以字符串方式返回的结果

简单编写

服务端: go run server.go运行就行

package mainimport ("fmt""net/http""net/rpc"
)type Args struct { //定义传入参数结构X, Y int
}type Algorithm int //就是一个辅助的定义func (t *Algorithm) Sum(args *Args, reply *int) error { //定义方法*reply = args.X + args.Yfmt.Println("Exec Sum ", reply)return nil
}func main() {algorithm := new(Algorithm) //分配内存空间指针同时分配内存初始化为0值fmt.Println("algorithm start", algorithm)//注册服务rpc.Register(algorithm)rpc.HandleHTTP() //将 RPC 服务挂载到 HTTP 服务器err := http.ListenAndServe(":8081", nil)if err != nil {fmt.Println("err=====", err.Error())}
}
  • 定义传入的结构体参数
  • 为了调用方法,定义相关结构体承载
  • 实例化对应的承载结构体
  • 注册服务,并注册到HTTP上
  • 启动端口监听

客户端: 终端开启运行 go run xxx.go 1 2 (后面的1和2是制定的参数传入)

package mainimport ("fmt""log""net/rpc""os""strconv"
)type Args struct { //定义传入参数结构X, Y int
}type Algorithm int  //就是一个辅助的定义func (t *Algorithm) Sum(args *Args, reply *int) error {*reply = args.X + args.Yfmt.Println("Exec Sum ", reply)return nil
}func main() {//连接服务器client, err := rpc.DialHTTP("tcp", "127.0.0.1:8081")if err != nil {log.Fatal("dailHTTP发生错误", err)}//获取第一个输入i1, _ := strconv.Atoi(os.Args[1])//获取第二个输入i2, _ := strconv.Atoi(os.Args[2])args := Args{i1, i2}var reply int//调用远程方法err = client.Call("Algorithm.Sum", args, &reply) //调用对应的方法if err!= nil {log.Fatal("调用远程方法发生错误", err)}fmt.Printf("Arith: %d+%d=%d\n", args.X, args.Y, reply)
}
  • 连接对应的服务
  • 输入,组成结构体
  • 通过Call 调用对应的方法并进行传递

json编写rpc

  • 标准 RPC:主要用于 Go 程序之间通信,用Gob进行二进制编码
  • JSON-RPC:适合跨语言通信(因为 JSON 是通用格式),用json进行编码
    jsonrpc更加通用,,二者的实际使用其实就是启动方式时函数调用上的区别,先不重复展开
http://www.dtcms.com/wzjs/309561.html

相关文章:

  • 网上翻译网站做译员如何建立自己的网站
  • wordpress和dedecms武汉seo百度
  • 模板网站制作平台怎样申请网站
  • 教育培训网站有哪些百度推广怎么登陆
  • 常州西站建设规划google adwords关键词工具
  • 四个免费h5网站市场营销平台
  • 做网站可能存在的问题免费的网站软件
  • 免费访问国外网站的app电商培训机构哪家好
  • 公众号怎么弄好看的模板北京培训seo哪个好
  • 门户网站建设检察百度24小时人工客服电话
  • 做网站用软件百度爱采购平台官网
  • 国外网站大牛不懂英语可以做吗手机建站系统
  • org 结尾的网站注册要什么手续海外推广代理商
  • dede网站幻灯片广州各区正在进一步优化以下措施
  • 看德国真人做看的视频网站网站推广网络推广
  • 深圳网站建站推广谷歌推广平台
  • 福州专业网站建设公司新手学seo
  • 南京市网站开发网站推广软件
  • 做网站一屏是多大关键词搜索排名推广
  • 美业设计网站网络运营
  • 网站交给别人做安全吗个人接广告的平台
  • 杭州公司注销网站备案sem竞价
  • 建设网站建设安全培训平台小程序如何推广运营
  • 免费域名注册永久阿里云广州seo推荐
  • h5网站模板下载百度号码认证平台个人号码申诉
  • 惠州建设局网站首页企业网站代运营
  • 网站模板建设报价网址模板建站
  • 网站建设涉及和描述的一些问题奶茶店营销软文
  • 做网站普洱数字营销
  • 深圳做网站那家公司好域名注册官网