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

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

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

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

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

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

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

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

​(未完待续)

 

时间: 2024-10-27 02:36:23

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

WiFi芯片核心技术三要素:系统、功耗、射频

在物联网市场的持续刺激下,2015年国内应用于物联网的WiFi芯片迎来了第一次"爆发式"增长.据相关统计数据显示,2014年物联网WiFi芯片出货量情况并不乐观,仅有1000万颗左右,到2015年时,WiFi芯片基本成为许多智能硬件产品的标配,总出货量突破3000万颗,并且伴随着智能硬件的起量,预计2016年出货量将进一步提升到1亿颗. 因此,记者走访了众多WiFi芯片原厂和方案商,从解决方案.核心技术.未来趋势三个方面,分析WiFi芯片的演变发展,以及探索其起量背后的原因. 从多芯片

shopex、ecshop、YxShop三大网店系统对比评测(一)

中介交易 SEO诊断 淘宝客 云主机 技术大厅 易想YxShop经过易想团队投入10人左右的技术团队,长达半年之久的重新架构(所以版本号沿用了以前的,这是为什么现在都4.2.0版本的原因),多次内部全面测试,已经正式发布,新版的易想商城采用多层架构,融合了web2.0元素,不仅可以开网店,还可以开分站,还可以店中店功能,商品点评.商品圈子,不仅可以卖东西,还可以卖点卡.拍卖.团购! 今天在这里将易想YxShop与ShopEx.ecShop这两个目前较主流的网店系统放在一起进行对比,希望有助于大家

高可用、高性能、开放生态圈!详解新华三关键业务系统认证

当前的市场环境下,各行各业的竞争日益加剧,企业对IT系统的依赖性越来越高.如何打造一套高性能.高可用.高安全和高扩展能力的IT系统,来保证核心业务的高效运行,成为摆在各大企业面前的首要难题.借助新华三的关键业务系统认证,企业即可以轻松实现这一目标.那么,何为新华三关键业务系统认证?企业如何参与到关键业务系统认证当中?本文,笔者将为大家详细解读. 一.高可用性高可靠性 有些朋友可能会认为对于关键业务来讲,性能肯定是第一位的.其实不然,性能固然重要,但如果没有高可用性和高可靠性作为前提,再强的系统性

第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(1)

原文:第三章--使用系统函数.存储过程和DBCC SQLPERF命令来监控SQLServer(1) 忘了说明:本系列文章出自<Microsoft SQL Server 2012 Performance Tuning Cookbook>,将会陆续推出译文,但是由于工作需要,没有按顺序贴出来. 本系列文章包含三部分: 1.  使用系统统计函数(system statistical functions)来监控系统健康程度. 2. 使用系统存储过程来监控SQLServer进程和会话. 3.  使用DB

联想笔记本win7系统避免系统优先识别关闭fn键的方法

  有联想笔记本win7系统用户反映在使用该系统的时候遇到的一件让他们无比厌烦的问题.一般情况下有些dota真三游戏爱好者通过F1键控制游戏中的角色.不过由于系统的优先识别,把F1键改成静音了.遇到这种情况,对游戏用户正常使用电脑进行游戏造成一定的影响.那么遇到这种情况我们应该怎么办呢?一起来看看吧! 方法如下: 1.进入笔记本的bios界面设置关闭功能键; 2.在刚才的界面我们得按Fn+F12,按TAB翻页,找到setup回车进入bois; 3.开机时进入BIOS界面后切换到CONFIG标签;

在64位系统中ocx控件调用问题

问题描述 在64位系统中ocx控件调用问题 在64位系统中已注册32位程序的ocx控件,为什么32位程序无法显示ocx控件? 解决方案 和64位没有什么关系,你的程序必须是32bit的才可以调用32bit的控件. 如果你用的是C#,你需要强制将程序集限定为32bit 参考:http://blog.csdn.net/blueboy2000/article/details/4242369 解决方案二: jsp调用ocx控件 解决方案三: 你是不是用的的32bit版本的regsvr32注册. 然后就是

金融系统电信系统怎么做安全

问题描述 金融系统电信系统怎么做安全网上支付手机支付网络系统怎么设计安全 解决方案 解决方案二:帮顶一下!解决方案三:一定得选最好的硬件平台雇以色列设计师建就得建最高档次的安全系统直接用专线连接带宽最少也得1TB什么防火墙呀,VPN呀,入侵检测呀能给他接的全给他接上......解决方案四:直接找cbc,icbc这种银行里的IT部门的领导问下.解决方案五:首先要确定安全的等级吧

什么是Init系统,init系统的历史和现状

本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用.本文是系列的第一部分,主要讲述 sysvinit 的特点和使用.Linux 操作系统的启动 首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化.内核初始化的最后一步就是启动 pid 为 1 的 init 进程.这个进程是系统的第一个进程.它负责产生其他所有用户进程. init 以守护进程方式存在,是

分布式系统的那些事儿(一)

巨石应用在如今互联网+时代逐渐淘汰,而分布式系统,集群,微服务可谓现在的流行趋势.那么近期花点时间来讲讲分布式系统吧. 什么是分布式系统,很多人一直不理解,只知道把系统分布式部署就行了,但是没有做过这样的系统,也没在里面写过代码,当然连部署都不知道,那么就更加的模糊了. 笼统而言,分布式系统从软件上来讲,对于用户来说是一个不可分割的整体.从硬件上讲就是多台独立的服务器.举个栗子,我们在访问淘宝的时候,我们不会去关心淘宝后台代码是怎么实现的,是如何部署的,我们唯一想要的就是完成购物流程,买到心仪的