nginxlua和redis解决saltstack传输文件慢的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了nginxlua和redis解决saltstack传输文件慢的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2384字,纯文字阅读大概需要4分钟。
内容图文
![nginxlua和redis解决saltstack传输文件慢的问题](/upload/InfoBanner/zyjiaocheng/556/48938166bf834fc883f4db23c02f784f.jpg)
前言: 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下发文件速度慢的问题。
原文地址:nginx lua和redis解决saltstack传输文件慢的问题, 感谢原作者分享。
内容总结
以上是互联网集市为您收集整理的nginxlua和redis解决saltstack传输文件慢的问题全部内容,希望文章能够帮你解决nginxlua和redis解决saltstack传输文件慢的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。