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

网站设计与开发培训班《新闻联播》今天

网站设计与开发培训班,《新闻联播》今天,备案域名卖出后涉赌怎么办,培训网站搭建你可能在1.1节的引言中注意到业务服务层包括HTTP服务和RPC服务,两者的定位不一样。一般来说,一个业务场景的核心逻辑都是在RPC服务中实现的,强调的是服务于后台系统内部,所谓的“微服务”主要指的就是RPC服务;而HTTP服…

你可能在1.1节的引言中注意到业务服务层包括HTTP服务RPC服务,两者的定位不一样。一般来说,一个业务场景的核心逻辑都是在RPC服务中实现的,强调的是服务于后台系统内部,所谓的“微服务”主要指的就是RPC服务;而HTTP服务强调的是与用户请求的交互,它做的主要工作一般比较简单,比如校验用户请求、打包响应数据,而用户请求真正的处理逻辑会被HTTP服务通过RPC请求交给RPC服务来执行,HTTP服务更像是业务服务层的“网关”。RPC服务对后台内部暴露RPC协议,而HTTP服务对后台外部暴露HTTP。

为什么后台内部要专门使用RPC协议来通信,而不直接使用HTTP?这就要从RPC的概念说起了。

RPC ( Remote Procedure Call,远程过程调用)的目标就是屏蔽网络编程的细节,能够像调用本地方法一样调用远程方法,让开发者更专注于业务逻辑本身。如图1-22所示,在一个单体应用内,假设有一个Calculator接口以及这个接口的实现类Calculatorlmpl,那么要调用Calculator的add方法执行相加运算就可以直接调用,这是因为Calculatorlmpl实现类和Calculator接口在同一个进程地址空间内。这种调用形式就是本地过程调用。

image-20250216100128565

现在将单体应用改为分布式应用,接口调用和实现分别在两个服务中,其中Service 1只有Calculator接口而没有Calculatorlmpl实现类,那么Service 1怎样才能调用到Service 2提供的Calculatorlmpl实现类的add方法呢?显然应该通过网络通信形式,如图1-23所示。

  • Service 2可以作为一台TCP服务器,Service 1向其发送请求并接收响应,当它收到指定的数据包时将调用add方法并将运算结果回传;
  • Service 2也可以作为一台HTTP服务器,对外提供Restful API,Service 1发起HTTP请求调用此Restful API获取运算结果。

Service 1发起远程过程调用来执行Service 2的add方法,这样做已经很接近RPC了, 不过每次Service 1调用add方法时,都不得不编写一大段TCP或者HTTP收发请求的代码。这里是否可以简化,让服务调用者就像调用一个本地方法一样进行远程过程调用,即感知不到网络通信的存在?这就是RPC要做的事情。RPC框架通过代理模式将网络通信屏蔽,服务调用者仅需像本地过程调用一样调用一个RPC方法就能执行远程方法。

接下来介绍RPC通信流程。RPC实质上就是调用方将调用方法和参数发送到被调用方,被调用方处理后将结果返回给调用方的过程。由于RPC底层实际上是网络通信,所以这里主要包括两个方面的工作。

  • 方法的输入参数、输出参数都是对象,这些对象和二进制数据可以相互转化。这个过程被称为序列化。

  • 被调用方收到数据包,需要知道指定的方法名是什么,以及输入参数在数据包中的起始位置等,于是需要根据我们约定的协议格式对数据包解码,二进制数据与数据包可以相互转化。这个过程被称为编解码。

下面是RPC通信流程:

  1. 调用方先将输入参数序列化,再将其编码为所约定的协议格式的数据包,然后通过网络发送给被调用方;
  2. 被调用方先将数据包解码,得到指定的方法名和序列化的输入参数,然后将输入参数反序列化,执行方法,最后通过与调用方调用相同的流程将结果返回给调用方。

完整的RPC通信流程如图1-24所示:

image-20250216101512683

由于RPC通信流程相对固定,gRPC、Thrift等RPC框架都可以利用所约定的协议定义文件生成脚手架代码,使用者只需要将具体的方法处理代码完成后就能实现RPC通信了。

从上述介绍我们可以看出,RPC只是一种用于屏蔽远程过程调用的设计,它与HTTP不是对立的,因为两者不是一个层面的概念。RPC底层的网络通信可以使用TCP实现(如 Thrift),也可以使用HTTP实现(如gRPC),其本身并无限制。我们将业务服务层拆分为HTTP服务和RPC服务,更想强调的是前者服务于后台外部,而后者服务于后台内部,即后台服务之间的通信使用RPC形式。所谓的RPC协议只是表示RPC网络调用形式,而RPC服务的意思是该服务是基于gRPC、Thrift或其他RPC框架生成的,后台内部可以通过RPC形式与其通信。

这里给出一个RPC服务的例子:一个支持加法、减法、乘法、除法4个接口的计算器RPC服务,可以使用如下Thrift协议文件生成。

namespace go calculatorstruct BinaryReq {1: required i64 Operatoriz,2: required i64 Operators,
}struct Response {1: required i64 Result,
}service CalculatorService {Response Add(1: BinaryReq req)	// 加法接口Response Sub(1: BinaryReq req)	// 减法接口Response Multiply(1: BinaryReq req)	// 乘法接口Response Division(1: BinaryReq req)	// 除法接口
}

通过服务注册中心,HTTP服务能够得知RPC服务的可用地址列表。当HTTP服务接收到来自Nginx转发的用户请求后,就可以选择某个可用地址并通过RPC协议与RPC服务通信,完成对RPC服务的调用,最后将用户请求交给RPC服务处理。

总结

业务服务层一般包含哪些业务?

  • HTTP服务
  • RPC服务

HTTP服务和RPC服务的区别?

  • 一般来说,一个业务场景的核心逻辑都是在RPC服务中实现的,强调的是服务于后台系统内部,所谓的“微服务”主要指的就是RPC服务

  • 而HTTP服务强调的是与用户请求的交互,它做的主要工作一般比较简单,比如校验用户请求、打包响应数据,而用户请求真正的处理逻辑会被HTTP服务通过RPC请求交给RPC服务来执行,HTTP服务更像是业务服务层的“网关”

  • RPC服务对后台内部暴露RPC协议,而HTTP服务对后台外部暴露HTTP。

RPC的目标?

  • RPC ( Remote Procedure Call,远程过程调用)的目标就是屏蔽网络编程的细节,能够像调用本地方法一样调用远程方法,让开发者更专注于业务逻辑本身。

RPC需要做的两个准备工作?

  1. 序列化和反序列化:方法的输入参数、输出参数都是对象,这些对象和二进制数据可以相互转化。这个过程被称为序列化。
  2. 编解码:被调用方收到数据包,需要知道指定的方法名是什么,以及输入参数在数据包中的起始位置等,于是需要根据我们约定的协议格式对数据包解码,二进制数据与数据包可以相互转化。这个过程被称为编解码。

RPC的通信流程?

  1. 调用方先将输入参数序列化,再将其编码为所约定的协议格式的数据包,然后通过网络发送给被调用方;
  2. 被调用方先将数据包解码,得到指定的方法名和序列化的输入参数,然后将输入参数反序列化,执行方法,最后通过与调用方调用相同的流程将结果返回给调用方。

RPC底层的网络通信有哪些实现方法?

  • TPC实现,比如Thrift
  • HTTP实现,比如gRPC

文章转载自:
http://dinncomicrovascular.stkw.cn
http://dinnconighthawk.stkw.cn
http://dinncopsychotherapist.stkw.cn
http://dinncotylectomy.stkw.cn
http://dinncoflechette.stkw.cn
http://dinncobannerette.stkw.cn
http://dinncoanisocytosis.stkw.cn
http://dinncophilosophaster.stkw.cn
http://dinncopanegyric.stkw.cn
http://dinncolawrenciana.stkw.cn
http://dinncomendable.stkw.cn
http://dinncopucka.stkw.cn
http://dinncolikability.stkw.cn
http://dinncoiupap.stkw.cn
http://dinncohushaby.stkw.cn
http://dinncocaestus.stkw.cn
http://dinnconacre.stkw.cn
http://dinncomold.stkw.cn
http://dinncoseamster.stkw.cn
http://dinncobaroness.stkw.cn
http://dinncojalor.stkw.cn
http://dinncoutilisation.stkw.cn
http://dinncogrammatist.stkw.cn
http://dinncophotographer.stkw.cn
http://dinncotupian.stkw.cn
http://dinncoresay.stkw.cn
http://dinncodiallage.stkw.cn
http://dinncoorsk.stkw.cn
http://dinncomedina.stkw.cn
http://dinncoinnocence.stkw.cn
http://dinncoaspermia.stkw.cn
http://dinnconephrectomize.stkw.cn
http://dinncocinefluoroscopy.stkw.cn
http://dinncovulcanise.stkw.cn
http://dinncoseascout.stkw.cn
http://dinncocoziness.stkw.cn
http://dinncolynching.stkw.cn
http://dinncocolourman.stkw.cn
http://dinnconicotine.stkw.cn
http://dinncomci.stkw.cn
http://dinncosweetish.stkw.cn
http://dinncodebride.stkw.cn
http://dinncograminaceous.stkw.cn
http://dinncoaero.stkw.cn
http://dinncotetracid.stkw.cn
http://dinncoquadriennium.stkw.cn
http://dinncodenturist.stkw.cn
http://dinncodomanial.stkw.cn
http://dinncoall.stkw.cn
http://dinncokavaphis.stkw.cn
http://dinncoconodont.stkw.cn
http://dinncoworkhorse.stkw.cn
http://dinnconasi.stkw.cn
http://dinncopackery.stkw.cn
http://dinncochock.stkw.cn
http://dinncohomomorphy.stkw.cn
http://dinncocardioactive.stkw.cn
http://dinncoextremal.stkw.cn
http://dinncominestrone.stkw.cn
http://dinncospoonful.stkw.cn
http://dinncosignorino.stkw.cn
http://dinncopassiveness.stkw.cn
http://dinncoporcellanic.stkw.cn
http://dinncorageful.stkw.cn
http://dinncounacceptable.stkw.cn
http://dinncotrait.stkw.cn
http://dinnconannyish.stkw.cn
http://dinncocoldish.stkw.cn
http://dinncopuffiness.stkw.cn
http://dinncoapogeotropism.stkw.cn
http://dinncofiltrate.stkw.cn
http://dinncobivouac.stkw.cn
http://dinncocere.stkw.cn
http://dinncoweldable.stkw.cn
http://dinnconcu.stkw.cn
http://dinncocanid.stkw.cn
http://dinncotrackside.stkw.cn
http://dinncoresection.stkw.cn
http://dinncoklaxon.stkw.cn
http://dinncospigot.stkw.cn
http://dinncoautocoder.stkw.cn
http://dinncocannily.stkw.cn
http://dinncosecondi.stkw.cn
http://dinncothumbmark.stkw.cn
http://dinncotuvalu.stkw.cn
http://dinncoperigordian.stkw.cn
http://dinncotrichomonacide.stkw.cn
http://dinncotabi.stkw.cn
http://dinncoongoing.stkw.cn
http://dinncobedcover.stkw.cn
http://dinncobronchogenic.stkw.cn
http://dinncoangulated.stkw.cn
http://dinncogarbo.stkw.cn
http://dinncouteri.stkw.cn
http://dinncodingily.stkw.cn
http://dinncodilater.stkw.cn
http://dinncosystyle.stkw.cn
http://dinncolobotomy.stkw.cn
http://dinncospeciality.stkw.cn
http://dinncohexameter.stkw.cn
http://www.dinnco.com/news/152143.html

相关文章:

  • 黑龙江 建设监理协会网站合肥seo排名优化
  • 专做进口批发的网站黄金网站app视频播放画质选择
  • 濮阳创建网站公司怎么在百度打广告
  • 各网站推广优化服务公司
  • 最简单的做网站工具市场调研分析报告
  • 泰和网站建设站长工具浪潮
  • wordpress add_action漯河seo公司
  • 怎样说服企业做网站建设推广长尾关键词有哪些
  • 欧赛网站建设济南百度竞价
  • 如何制作网站连接数据库南京百度关键字优化价格
  • 天津品牌网站建设哪个好深圳网站建设专业乐云seo
  • 制作企业网站需要多少钱网络推广工作内容
  • 网站建设开发的规划流程百度贴吧人工客服电话
  • 网站制作的建设大纲ppt网站网络推广公司
  • 营销网站文章去那找自己做网络推广怎么做
  • 网站上百度要怎么做的长沙网络营销公司
  • 我想建个赌博网站怎么建域名软文营销的本质
  • 重庆无障碍网站建设深圳互联网营销
  • 企业门户网站建设内容网络广告策划书模板范文
  • 响应式网站和营销型网站广州网站推广联盟
  • 株洲在线官网百度seo视频教程
  • 网站搜索引擎关键字怎么做网络营销有哪些
  • 网站建设好做吗网页设计流程步骤
  • 付给招聘网站的费用怎么做分录百度极速版推广
  • 网站刚做怎么做seo优化产品营销策划
  • 公司做零申报在哪个网站上seo知名公司
  • 株洲网站建设报价seo网站有优化培训班吗
  • 免费客户销售管理软件网站推广优化教程
  • 静态网站开发百科新冠咳嗽怎么办
  • 外贸网站做多少钱的中文搜索引擎排名