目录
基本概念
RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务,该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程,RPC最直接的作用就是微服务。

RPC通信过程
RPC的通信过程网上介绍很多,这里就不在单独介绍了,具体过程如下:
1.Client以本地调用的方式发起调用;
2.Client stub收到调用后负责将被调用的方法名、参数等打包编码成特定格式成网络传输的消息体;
3.Client stub将消息体通过网络发送给服务端;
4.Server stub收到通过网络接收到消息后按照相应格式进行拆包解码,获取方法名和参数;
5.Server stub根据方法名和参数进行本地调用;
6.被调用者(Server)本地调用执行后将结果返回给Server stub;
7.Server stub将返回值打包编码成消息;
8.通过网络发送给Client;
9.Client stub收到消息后,进行拆包解码,返回给Client;
10.Client得到本次RPC调用的最终结果.
RPC 具体实现
server端
package main
import (
"net"
"net/http"
"net/rpc"
"strings"
)
type EchoUtil struct {
}
func (echo *EchoUtil) CountString(str string, rsp *int) error {
*rsp = strings.Count(str, "s")
return nil
}
func main() {
echoUtil := new(EchoUtil)
/*将服务对象进行注册*/
err := rpc.Register(echoUtil)
if err != nil {
err.Error()
}
rpc.HandleHTTP()
/* 固定端口进行监听*/
listen, err := net.Listen("tcp", ":9999")
if err != nil {
panic(err.Error())
}
http.Serve(listen, nil)
}
客户端
package main
import (
"fmt"
"net/rpc"
)
func main() {
cli, err := rpc.DialHTTP("tcp", "localhost:9999")
if err != nil {
panic(err.Error())
}
var resp *int
/*采用同步调用的方式*/
err = cli.Call("EchoUtil.CountString", "this is test", &resp)
if err != nil {
panic(err.Error())
}
fmt.Println(*resp)
}
相关推荐:
一键创作,助你轻松实现创意梦想,最低价刷粉网站推广
SEO单页网站:助力企业在线营销的一站式解决方案,湖南视频网站优化方式
seo重点工作是什么,seo重点工作是什么意思 ,棋谱检查ai
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
SEO定价策略:如何根据企业需求定制最佳价格方案,教育培训抖音营销推广
ChatGPT发生故障,背后隐藏着哪些不为人知的原因与挑战?,硬件ai和软件ai
seo网站代码是什么,网站专业术语中seo意思是什么 ,拟人ai制作
SEO武汉:如何提升武汉地区网站的搜索引擎排名,景区网站建设费用
ChatGPT回答是空白的背后,究竟隐藏着什么秘密?,如何用ai写作来赚钱
ChatGPT页面无法下拉?禁用浏览器扩展,轻松解决!,imba 1.6 ai
丹东seo是什么怎么选,丹东spr ,黑发ai图
ChatGPT:打破语言障碍,理解与沟通的新时代,交通轨道ai
专业SEO助力企业在激烈市场竞争中脱颖而出,嘉兴海外网站推广价格
为什么seo这么麻烦,seo是什么意思 为什么要做seo ,dota1ai地图命令选ai
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
如何通过AI写文章,轻松提高写作效率与质量
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
SEO领先-如何借助SEO技术让您的网站脱颖而出,seo是黑客吗
文章自动生成AI:助力写作新时代,让创作更高效
SEO行销:开启网站流量增长的秘密武器,百威产品关键词查询排名
SEO埋词技巧,如何提升网站排名?,贵州营销推广方法
seo适合什么职业,seo有前途么 ,ai小精灵
SEO怎么设置:让你的网站快速登上搜索引擎首页的秘密,Ai压印分色
SEO目的:如何通过精准优化提高网站流量与转化率,百度推广网站关键词
seo需要学习什么语言,做seo需要懂什么技术 ,ai软件制作教程
SEO努力:提升网站排名的关键策略,网站建设微企动力
为什么关键词太少会影响你的网络营销效果?,陕西seo网站推广工具
ChatGPT安装包Windows版-让智能助手触手可得,q和ai
ChatGPT免费版下载:智能对话助手带来的全新体验,电脑怎么下载Ai微认证
SEO教育:搜索引擎优化,开启成功职业之路,搜狗SEO排名接单
seo系列什么意思,seo的分类 ,que n ai je
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
SEO优化如何进行:提升网站排名,轻松超越竞争对手,ai写作怎么操作手机
Chatttst:开启智能沟通新时代的无限可能,上海联通ai
智能AI写作生成:如何借助人工智能提升创作效率与质量
SEO与SEM策略:提升网站流量与品牌曝光的双剑合璧,ai补图
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
整理文章的AI:提升写作效率的智能助手
ChatGPT怎么突然不能打开了?你需要了解的原因与解决办法,ai写作有什么问题吗怎么解决
AI免费免登录:轻松体验人工智能的魔力,无需繁琐注册,华为AI音箱2音质如何
360AI写作怎样?助力创作的新风尚,ai到访
什么是seo网站推广,什么是seo网站推广 ,ai酷男人
什么是seo概念,什么是seo,sem ,ai音标谐音
为什么选择老域名注册,打造品牌价值的秘密武器,网站建设服务费用多少
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
AI免费生成文字,打造创作新时代
ChatGPT打不开实时问题解决方案:让你的AI助手始终在线,psd 转ai