[云运维] 对于 saltstack 更换 zeromq 用 raet 做通信方式的闲聊

Posted SOHU-DBA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[云运维] 对于 saltstack 更换 zeromq 用 raet 做通信方式的闲聊相关的知识,希望对你有一定的参考价值。



对于 saltstack 更换 zeromq 用 raet 做通信方式的闲聊




经常用 saltstack 的人会发现,zeromq 貌似不是那么靠谱,其实不能说 0mq 不靠谱,应该说 salt 的这样的集群的环境,导致 zeromq 不能更好的融合于 0mq 的体系里面。


那么其实我个人,觉得 zeromq 确保可靠性质的方案,还是有的,但是需要我们自己做事件的监听和锁的使用。 我想用 saltstack 的人并不一定都会 python,所以才直接干脆的换掉 zeromq,用 raet 做通信及运行架构。


他们想实现什么,首先想在网络 io 方面做成异步,而不是单纯的用 pubsub 这样通信原理加逻辑异步,而是真正的网络 io 异步。 另一个方面是,尽量的排除 multiprocessing 的利用,而启用现在相当火的协成,也就是微线程。


微线程使用协同工作的多任务处理来取代线程和 / 或进程,其避免了许多诸如资源竞争,上下文切换,和进程间通信的复杂性,同时提供了更高的性能。


由于所有协同工作的微线程均运行于一个进程,也就造成一个简单的微线程应用的资源调用被限制在一个 CPU 核心。为了使得所有的 CPU 核心均得到充分的利用,应用程序需要能够为每个 CPU 核心运行至少一个进程。这就需要同一台主机的进程间通信。但是不同于传统的多进程处理方式,即一个进程完成一个逻辑并发的功能,一个基于微线程的多进程程序不再使用一个微线程处理一个逻辑并发功能的模式,而微线程的总数是取决于总的进程的最小数目的限制,并且其不超过 CPU 的核心数量。这将优化 CPU 的处理能力,同时最大限度地减少进程上下文切换的开销。



另外,他们调用了 UDP 作为通信,在 UDP 里面夹杂了各种 saltstack 对他们的定义。主要就是为了让 saltstack 的通信更加的可靠性。


那么对于安全方面,它采用了 CurveCP 的加密方案,听说 速度是很给力,也相对的安全。


这两天抽个时间,看看 Raet 的代码实现流程,好让自己更了解 saltstack。











别倒贴,要不整死你



转载时必须以链接形式注明原始出处及本声明。










http://xiaorui.cc/2014/11/28/%E5%AF%B9%E4%BA%8Esaltstack-raet%E9%80%9A%E4%BF%A1%E6%96%B9%E5%BC%8F%E7%9A%84%E9%97%B2%E8%81%8A/




#sohu-dba#



以上是关于[云运维] 对于 saltstack 更换 zeromq 用 raet 做通信方式的闲聊的主要内容,如果未能解决你的问题,请参考以下文章

从传统运维到云运维演进历程之软件定义存储下

从传统运维到云运维演进历程之软件定义存储上

云运维必备知识-云运维定义以及工作内容讲解

云运维过程注意事项简单讲解-行云管家

专有云运维如何更快更准更稳?丨智能运维

今晚九点公开课|云运维杂谈