fastdfs图片访问与后台接口的异步调用

背景:

现有音乐/视频播放流程:1.前端根据资源地址进行资源播放 2.前端调用后台接口使资源播放量+1.

需求:

为了简化前端播放流程,将以上流程合二为一,通过资源地址后面加参数的形式,请求资源内容的同时调用后端接口做其他业务操作(统计播放、下载量等等)。

实现方式一:

Nginx-subrequest,http框架提供的一种分解复杂请求的设计模式。可以把原始请求分解成多个子请求,使得诸多请求协同完成一个用户请求。

实现步骤:

1.在nginx.conf文件中配置好子请求的处理方式
2.启动subrequest请求
3.实现子请求执行结束时的回调方法
4.实现父请求被激活时的回调方法
小结:此方法需要自己动手写c脚本,并添加模块到nginx中,参考网上c脚本的代码调试起来略复杂,没有成功。

实现方式二:

openresty,结合了lua脚本和nginx,能借助于Nginx的异步非阻塞达到使用Lua异步并发访问后端服务。

实现步骤:

1linux服务器安装openresty
2把fastdfs-nginx模块编译添加到operesty-nginx中
3异步调用文件系统和后端服务
4获取文件系统调用结果并返回给客户端
小结:openresty给客户端返回数据会导致音视频播放存在bug,无法拖动进度条来进行快进,也可通过转发的形式来实现,但是转发之后,http请求则不再执行,可先执行http请求再执行转发,这样达不到异步调用的效果,对文件访问会有一定影响。

实现方式三:

ngx_http_mirror_module,nginx的流量复制模块;nginx 1.13.4及后续版本内置此模块,镜像请求不影响源站请求及响应,源站(指我们的文件系统)请求完后直接返回,源站nginx-server将流量复制到mirror站(指我们的后端服务)后,两者不再有任何交集(即文件系统流量复制到后端服务后,两者互不干扰)

实现步骤:

1linux服务器安装1.13.4的后续版本
2把fastdfs-nginx模块编译添加到nginx中
3nginx源站配置和镜像站点配置

小结:实现了一个url同时访问文件系统和调用后端接口,且后端接口调用结果不影响文件的访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值