服务设计模式-客户端与服务之间的交互(请求/响应模式)

交互方式:客户端与Web服务进行通信的最基本方式就是通过点对点连接

交互模式:

模式名称描述
请求/响应模式当服务接收到请求时,就开始处理,并通过同一个客户端连接来返回结果
请求/确认模式当服务接收到请求时,先将请求转发至一个后台进程,并返回一个确认消息给客户端,该确认消息中包含一个唯一的请求标识符(方便客户端获取处理结果)
媒体类型协商模式允许客户端在HTTP请求头中指定一种或多种媒体类型首选项,将请求发送到服务之后,服务能够按照预设的格式(JSON,XML等等)生成响应并返回
链接服务模式只发布少数几个根Web服务地址,并在响应中包含相关服务地址,客户端通过解析响应,能够发现后续服务的URI


请求/响应模式:

适用范围:处理请求和返回响应平均时间比较短暂,客户端也能接受响应丢失的情况,例如:天气预报,获取当期显示时间等

考虑因素:

1.时间耦合:在请求/响应模式下,客户端假设服务接收到请求总能完成处理,处理完成也总能返回响应,但是如果服务所在的系统奔溃了或大并发导致系统资源耗尽请求超时或者维护停机了等等人为的,非人为的因素导致客户端请求被拒绝。这种情况就突出了请求/响应模式时间耦合或时间依赖的影响,因为必须立即处理请求并无延迟的返回响应,所以时间耦合度高。在可用性和可伸缩性方面可以考虑用请求/确认/客户端轮询或请求/确认/回调之类的模式加以解决。

2.客户端阻塞

默认情况下请求/响应模式的客户端会阻塞,等待服务响应。使用异步处理器客户端就能解决这个问题,这种方式能让客户端通过另外一个线程来分发请求和接收响应,该线程独立于主客户端线程。

3.中介

请求/响应模式设计客户端和服务之间的点对点连接,除此之外,二者之间还存在各种中介。例如,可用代理服务器缓存客户端请求资源,当请求通过代理时,代理会检查请求的数据是否在其缓存中,有则直接返回。防火墙也是一种中介,用于阻止或过滤网络流量,检查客户端证书(如果客户端不具备指定证书,则阻塞请求)。

4.请求/响应模式与RPC

请求/响应模式与RPC(远程过程调用)虽然某些方面相似,但是存在一些重要差别。RPC技术调用完远程过程,客户端会等待响应。而请求/响应模式则可以利用异步处理器。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
客户端服务器(Client-Server)模型是一种常见的网络架构,MVC(Model-View-Controller)是一种常用的软件架构模式。将这两者结合起来,可以得到一个简单的客户端服务器MVC三者的流程图。 在这个流程图中,首先客户端(Client)向服务器(Server)发起请求请求中包含了用户的操作或者需要的数据。服务器接收到请求后,将其传递给控制器(Controller)。控制器根据请求的内容,与模型(Model)进行交互。模型负责处理业务逻辑,并提供相应的数据给控制器。 控制器在接收到模型提供的数据后,对数据进行处理和加工,然后将加工后的数据传递给视图(View)。视图使用这些数据来生成用户界面,然后发送给客户端客户端接收到视图生成的页面后,将其渲染在用户的浏览器或者移动设备上,用户可以通过界面与应用程序进行交互。 当用户提交表单或者发起其他操作时,客户端将用户的请求发送给服务器。服务器接收到请求后,再次将其传递给控制器。控制器根据请求内容,与模型进行交互,得到需要的数据并进行处理。处理后的数据再次发送给视图,最终显示在用户界面上。 这个流程图简单展示了客户端服务器MVC三者的交互过程,客户端服务之间通过请求响应进行通信,控制器作为中间人处理用户的请求和业务逻辑,模型负责处理具体的业务,视图负责生成用户界面。这样的设计模式可以使得应用程序的代码更加清晰、易于维护,并提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值