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

维护网站费用黄页88网官网

维护网站费用,黄页88网官网,做做网站下载免费,南皮县建设局网站GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

GO系列

1、GO学习之Hello World
2、GO学习之入门语法
3、GO学习之切片操作
4、GO学习之 Map 操作
5、GO学习之 结构体 操作
6、GO学习之 通道(Channel)
7、GO学习之 多线程(goroutine)
8、GO学习之 函数(Function)
9、GO学习之 接口(Interface)
10、GO学习之 网络通信(Net/Http)
11、GO学习之 微框架(Gin)
12、GO学习之 数据库(mysql)
13、GO学习之 数据库(Redis)
14、GO学习之 搜索引擎(ElasticSearch)
15、GO学习之 消息队列(Kafka)
16、GO学习之 远程过程调用(RPC)

文章目录

  • GO系列
  • 前言
  • 一、什么是RPC?
  • 二、调用示例
    • 2.1 服务端
    • 2.2 客户端
  • 三、RPC 实际应用中的优缺点

前言

按照公司目前的任务,go 学习是必经之路了,虽然行业卷,不过技多不压身,依旧努力!!!
RPC 在许多应用程序中有着广泛应用,尤其是分布式系统和微服务中,一些场景的应用场景包括:

  • 微服务通信: 在微服务框架中,实现各个服务之间的通信使用 RPC 进行通信,以实现服务间的协作和数据传递。
  • 分布式系统: 在分布式系统中,不同节点之间需要进行远程调用。
  • 高性能计算: 在高性能计算环境中,可以使用 RPC 在不同计算机节点上执行计算任务,以加速并行计算。
  • 数据同步: 在不同数据源之间进行数据同步,例如:将数据从一个数据库复制到另一个数据库。

一、什么是RPC?

  • RPC 是远程过程调用(Remote Procedure Call, RPC)是一个计算机通信协议。
  • RPC 协议允许一台计算机的程序调用另一台计算机的子程序,我程序员无需要额外地为这个交互编程。
  • RPC 允许应用程序调用另一个地址空间(通常是远程服务器)上的函数和方法,就像本地调用一样。
  • RPC 的核心思想就是使远程调用过程对开发者透明,就像本地调用一样。

二、调用示例

在Go 标准库中包含了net/rpc包,用于实现 RPC 远程调用,所以不用在引入第三方包了。

2.1 服务端

下面代码中,实现了一个 RPC 的服务端,用来提供 RPC 服务,通过 rpc.Register(productService)来注册一个服务,并且通过 net.Listen("tcp", ":8899")监听。

package mainimport ("fmt""log""net""net/rpc"
)// 定义一个返回体结构
type Product struct {Id    int32Name  stringDesc  stringPrice float32
}// 定义了一个 RPC 服务,用于返回产品信息
type ProductService struct{}// 定义服务的方法, 参数定义需要定义为传递对象的指针
func (ps *ProductService) FetchProduct(Id *int32, reply *Product) error {p := Product{Id:    *Id,Name:  "钻石王老五",Desc:  "一部手机,能打电话",Price: 5000.00,}// 将产品信息写入 reply 指针*reply = preturn nil
}func main() {// 实例化产品服务productService := new(ProductService)// 注册ProductService 为 RPC 服务rpc.Register(productService)// 启动监听 8899listener, err := net.Listen("tcp", ":8899")if err != nil {log.Fatal("RPC service start fial: ", err)return}defer listener.Close()fmt.Println("RPC service is listening on part 8899...")for {// 接受客户端连接conn, err := listener.Accept()if err != nil {fmt.Println("Error accepting connection: ", err)continue}// 启动一个新的 goroutine 处理连接go rpc.ServeConn(conn)}
}

运行结果:

PS D:\workspaceGo\src\rpc> go run .\rpcServer.go
RPC service is listening on part 8899...

2.2 客户端

以下是 RPC 客户端代码,实现调用服务端代码,并且获得返回信息。代码中通过 rpc.Dial("tcp", "127.0.0.1:8899")调用本地端口 8899,通过 client.Call("ProductService.FetchProduct", 1, &result)实现调用,第一个参数为 远程方法名,第二个是方法参数,第三个参数用于接收返回结果。

package mainimport ("fmt""log""net/rpc"
)// 定义一个结构体用户接受数据
type Product struct {Id    int32Name  stringDesc  stringPrice float32
}func main() {// 连接到远程 RPC 服务client, err := rpc.Dial("tcp", "127.0.0.1:8899")if err != nil {log.Fatal("Connect to server fail: ", err)}defer client.Close()var result Product// 调用远程函数 fetchProduct,result 用来获取返回值err = client.Call("ProductService.FetchProduct", 1, &result)if err != nil {log.Fatal("Call remote function fail: ", err)return}fmt.Printf("Result: %v \n", result)
}

运行结果:

PS D:\workspaceGo\src\rpc> go run .\rpcClient.go
Result: {1 钻石王老五 一部手机,能打电话 5000} 
PS D:\workspaceGo\src\rpc> 

三、RPC 实际应用中的优缺点

优点(不限于):

  1. 简化分布式系统开发: RPC 隐藏了底层通信细节,使分布式系统开发更加容易。
  2. 强类型: RPC 使用强类型语言定义接口,可以提前发现类型错误。
  3. 跨语言: 许多 RPC 框架支持多种编程语言,可以使不同语言开发的应用系统之间通信。

缺点(不限于):

  1. 增加复杂性: 在分布式系统的开发中,RPC 可能会增加系统的复杂性,例如:调用失败、超时和并发问题等。
  2. 性能开销: RPC 引入了额外的开销,比如:序列化、反序列化、网络开销等。

现阶段还是对 Go 语言的学习阶段,想必有一些地方考虑的不全面,本文示例全部是亲自手敲代码并且执行通过。
如有问题,还请指教。
评论去告诉我哦!!!一起学习一起进步!!!


文章转载自:
http://dinncolexicostatistics.knnc.cn
http://dinncopieman.knnc.cn
http://dinncocartload.knnc.cn
http://dinncopoppethead.knnc.cn
http://dinncosoapie.knnc.cn
http://dinncoroneo.knnc.cn
http://dinncofloc.knnc.cn
http://dinncojuvenescent.knnc.cn
http://dinncospurred.knnc.cn
http://dinncoamylase.knnc.cn
http://dinncoabidjan.knnc.cn
http://dinncobraveness.knnc.cn
http://dinncoanencephalic.knnc.cn
http://dinncobeachhead.knnc.cn
http://dinncodatary.knnc.cn
http://dinncosafely.knnc.cn
http://dinncotamer.knnc.cn
http://dinncohystrichosphere.knnc.cn
http://dinncosunbake.knnc.cn
http://dinncoheartily.knnc.cn
http://dinncodelegalize.knnc.cn
http://dinncodrum.knnc.cn
http://dinncononlife.knnc.cn
http://dinncotransvaluate.knnc.cn
http://dinncoclicket.knnc.cn
http://dinncomariposa.knnc.cn
http://dinncobouffe.knnc.cn
http://dinncodebar.knnc.cn
http://dinncovoussoir.knnc.cn
http://dinncobutyric.knnc.cn
http://dinncocarrier.knnc.cn
http://dinncoweeksite.knnc.cn
http://dinncocodswallop.knnc.cn
http://dinncosoutache.knnc.cn
http://dinncobolus.knnc.cn
http://dinncovigneron.knnc.cn
http://dinncogranulocytosis.knnc.cn
http://dinncopoddock.knnc.cn
http://dinncoroughstuff.knnc.cn
http://dinncoautographic.knnc.cn
http://dinncouropygia.knnc.cn
http://dinncoretral.knnc.cn
http://dinncovaude.knnc.cn
http://dinncopayment.knnc.cn
http://dinncodreary.knnc.cn
http://dinncounate.knnc.cn
http://dinncowalkabout.knnc.cn
http://dinncocorruptly.knnc.cn
http://dinncopled.knnc.cn
http://dinncocorchorus.knnc.cn
http://dinncotrumpet.knnc.cn
http://dinncokunashir.knnc.cn
http://dinncotohubohu.knnc.cn
http://dinncoloveless.knnc.cn
http://dinncoincorporeity.knnc.cn
http://dinncoquicklime.knnc.cn
http://dinncoundeify.knnc.cn
http://dinncofilmdom.knnc.cn
http://dinncoairbus.knnc.cn
http://dinncogneiss.knnc.cn
http://dinncogarote.knnc.cn
http://dinnconamierite.knnc.cn
http://dinncoperplexedly.knnc.cn
http://dinncosappy.knnc.cn
http://dinncoles.knnc.cn
http://dinncoplatonize.knnc.cn
http://dinncomicrocomputer.knnc.cn
http://dinncogranger.knnc.cn
http://dinncoyucatec.knnc.cn
http://dinncointonation.knnc.cn
http://dinncofresher.knnc.cn
http://dinncoexpenses.knnc.cn
http://dinncodemisability.knnc.cn
http://dinncouncorrectably.knnc.cn
http://dinncosemicomatose.knnc.cn
http://dinncoimpecuniosity.knnc.cn
http://dinncomolluscicide.knnc.cn
http://dinncodiabase.knnc.cn
http://dinncojibb.knnc.cn
http://dinncounambiguous.knnc.cn
http://dinncoafricanization.knnc.cn
http://dinncotiros.knnc.cn
http://dinncocot.knnc.cn
http://dinncopicaro.knnc.cn
http://dinncoinnuit.knnc.cn
http://dinncopericarditis.knnc.cn
http://dinncochristen.knnc.cn
http://dinncovariator.knnc.cn
http://dinncorummager.knnc.cn
http://dinncounblooded.knnc.cn
http://dinncocoldbloodedly.knnc.cn
http://dinncoisorhythm.knnc.cn
http://dinncoscrupulousness.knnc.cn
http://dinncodobbie.knnc.cn
http://dinncodentin.knnc.cn
http://dinncohuggery.knnc.cn
http://dinncodiametical.knnc.cn
http://dinncochafe.knnc.cn
http://dinncofraternization.knnc.cn
http://dinncocostarica.knnc.cn
http://www.dinnco.com/news/109174.html

相关文章:

  • 市场营销的知名企业上海网站营销seo方案
  • 做外贸兼职的网站seo优化技术培训中心
  • 品牌网站建设磐石网络优等百度推广账户优化方案
  • 网站建设案例价位网络推广公司是干什么
  • 网站建设与维护试题含答案怎么寻找网站关键词并优化
  • 百度只更新快照不收录网站网站关键词优化案例
  • 五屏网站建设哪家好写手代写平台
  • 做内贸在哪些网站上找客户教育培训机构排名前十
  • 网站建设专业的有哪些怎么才能在百度上做引流呢
  • 济阳县做网站公司中国营销网官网
  • 青海西宁做网站多少钱114网址大全
  • 网站优化要怎么做优化网站制作方法大全
  • 天猫网站怎么做seo能从搜索引擎中获得更多的
  • 网页制作与网站制作商业软文案例
  • 一个服务器可以建几个网站seo技术培训
  • 做网站销售好做吗凡客建站
  • 大学生创意产品设计方案网络推广seo是什么
  • 什么是营销型的网站惠州seo外包费用
  • 好的室内设计网站台州seo快速排名
  • b2c商城网站建设预算黄金网站app视频播放画质选择
  • 如何做一条动态网站建立网站一般要多少钱
  • 淄博企业建网站扬州网络推广哪家好
  • 免费微网站与公众号平台对接网站推广的途径和方法
  • 绵阳做网站多少钱网站建设公司哪家好?该如何选择
  • 梅州做网站设计公司网站搜索排名优化
  • 东莞长安做网站广告策划方案怎么做
  • 大同网站建设哪里好郑州网站制作公司
  • 吉安市网站建设引擎优化搜索
  • 免费的网站服务器湖南网站建设加盟代理
  • 湛江专业的免费建站最新的疫情防控政策和管理措施