0

0

nginx lua和redis解决saltstack传输文件慢的问题

php中文网

php中文网

发布时间:2016-06-07 16:41:01

|

1289人浏览过

|

来源于php中文网

原创

前言: saltstack是个好东西,我现在很多的api接口都开始用saltstack做。有的时候会有在页面上传文件,然后推送到客户端的情况。或者是把安装配置的安装包推送到客户端。 唉, salstack下发文件慢,大家有没有头疼过,我是真的头疼过。 其实说起来大家也没必

前言:

    saltstack是个好东西,我现在很多的api接口都开始用saltstack做。有的时候会有在页面上传文件,然后推送到客户端的情况。或者是把安装配置的安装包推送到客户端。 唉, salstack下发文件慢,大家有没有头疼过,我是真的头疼过。  


其实说起来大家也没必要非要用saltstack做文件的下发,看个人的喜好,有些人会用git做,我这里只是为了解决速度的问题,git在大文件和多minion拉取文件下,也不见得快。也有哥们用saltstack rsync的组合,大家也都知道rsync分集中模式,一种是密码,一种是cs的认证,有点麻烦。

我上面说的废话,当然还是要看情况做下一步的:

如果你是下发配置文件,这个时候你要用saltstack的sls相关的功能。

如果你只是单纯下发文件,这个时候你在用saltstack的file模块,那会痛苦的,因为他有点慢。

说下我这这边因为saltstack文件慢的问题,在项目中的升级情况:


刚开始的时候用的是saltstack本身的文件传输,经常传大的文件,速度真的不乐观。一开是我觉得zeromq和msgpack是个很好的组合,有一次大意了,推了一个大的文件包,结果导致salt master卡死了。。。

这里标注下,我的原文地址 blog.xiaorui.cc

后期我这边用tornado做下载的接口,慢慢的也开始承受不了了。

现在的模式是用socket的模式,用msgpack socket来解决,堵塞的问题是用threading线程池解决的。但是zeormq也是个高端版的socket,我这边用底层的socket对于大文件是比zeromq强,但是压力大了,还是蹦出异常。。。

现在的需求是,我需要在下载文件的时候,提交一个由master分配给他的临时key,带着这个key去下载文件。 其实方法比较的简单,比如让10个人下载这个文件,我就产生了10个临时的key,然后用saltstack api的模式,传给客户端,然后客户端拿着这个key去下载。

我现在的想法是用 nginx lua的模式,在access_by_lua里面增加redis的key的判断,当key匹配成功后,我再给他下载的地址。


这边也已经大体实现了,但是和后端的交互产生了冲突,正在解决。。。。还有一个问题是用ngx.location.capture 做子访问的时候。

res = ngx.location.capture(
       '/api/redisget',
       { method = ngx.HTTP_POST, body = post_from_key }
   )

还是那句话,你要是不想搞复杂了,就简单的用 saltstack rsync的方案就行啦。 如果想折腾,有体现高端的话,可以用用我介绍的那几种方法, sokect或者是nginx lua redis的模式。


希望官网能出一个好的方案来解决saltstack下发文件速度慢的问题。

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

33

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

91

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

283

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

370

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

35

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

25

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

72

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号