前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式系统的那些事儿(三) - 系统与系统之间的调用

分布式系统的那些事儿(三) - 系统与系统之间的调用

作者头像
风间影月
发布2018-04-04 17:16:36
1K0
发布2018-04-04 17:16:36
举报
文章被收录于专栏:BeJavaGodBeJavaGod

系统与系统之间的调用通俗来讲,分为本地同一台服务器上的服务相互调用与远程服务调用,这个都可以称之为RPC通信。浅白点讲,客户访问服务器A,此时服务器要完成某个动作必须访问服务器B,服务器A与B互相通信,相互调用,A访问B的时候,A挂起,等待B的响应,B响应返回相应的数据个A,A再返回给用户,这就是一个很简单的栗子。

举个常见栗子,用户上传图片,用户上传图片首先会经过自身的服务器,然后再对图片进行处理,此时图片处理放在图片服务器中进行,那么我们只需要调用图片服务器提供的接口即可,然后等待响应返回的图片地址,此时我们队它进行额外的处理,保存到数据库然后在返回到前端进行显示。

再不明白就说说这次的顺丰和菜鸟数据安全事件,就是你调用我我调用你这样的一些列RPC通信。

其实在多年以前,系统之间的通信通过建立tcp协议来进行交互,非常麻烦,而现如今使用RPC的话那么就简单的多了,很多细节方面的事我们无需关注,比如socket啊,数据的转换啦解析啦等等。

RPC通信在系统之间的主要数据格式会以json为主,当然也有xml的形式,但是不多,不过很多老系统还是都会以xml为主。

在传输过程中,系统和系统之间的通信通过网络,而通信并不会保证每次都会成功,所以各类错误也一定要完善,就像咱们有时候对接第三方接口那样,会提供很多的错误码供我们分析,甚至还有超时请求的响应时间配置等等。对于这一系列的异常以及错误,我们一定要捕获并且处理,不然在顶端的客户不知道系统发生了什么而一直等着,这样是不人性化的。

系统之间通信收到网络的影响很多时候响应会比较慢,此时的用户可能会在客户端多次点击按钮,这样被调用的服务端就会执行多次,那么就要考虑系统的幂等性,这个不多说了,以前的帖子里有讲过。

好了,先讲这么多吧...

(未完待续)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BeJavaGod 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档