SaltStack与ZeroMQ

Posted jimmy_xuli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SaltStack与ZeroMQ相关的知识,希望对你有一定的参考价值。

 

  • SaltStack与ZeroMQ

SaltStack底层是基于ZeroMQ进行高效的网络通信。

 

ZeroMQ简介

    ?MQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库。它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(message broker)。该库设计成常见的套接字风格的API。能够提供进程内(inproc)、进程间(IPC)、网络(TCP)和广播方式的消息信道, 并支持扇出(fan-out)、发布-订阅(pub-sub)、任务分发(task distribution)、请求/响应(request-reply)等通信模式。

Stack第一种模式:发布与订阅

ZeroMQ支持Publish/Subscribe,即发布与订阅模式,我们经常简称Pub/Sub。

技术分享图片

Salt Master运行两个网络服务,其中一个是ZeroMQ PUB系统,默认监听4505端口

可以通过修改/etc/salt/master配置文件的publish_port参数设置。

它是salt的消息发布系统,如果查看4505端口,会发现所有的Minion连接到Master的4505端口,TCP状态持续保持为ESTABLISHED。

技术分享图片

技术分享图片

 

 - SaltStack第一种模式:请求与响应

ZeroMQ支持Request-Reply,即请求与响应模式,我们经常简称REQ/REP。

技术分享图片

Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口,可以通过修改/etc/salt/master配置文件的ret_port参数设置。

它是salt客户端与服务端通信的端口。比如说Minion执行某个命令后的返回值就是发送给Master的4506这个REP端口

如果安装了python-setproctitle软件包,所以我们可以直接看到Salt Master启动的进程的名称。

yum install -y python-setproctitle

重启master和minion

systemctl restart salt-master
systemctl restart salt-minion

技术分享图片

/usr/bin/salt-master -d ProcessManager  # 中心进程管理器
/usr/bin/salt-master -d _clear_old_jobs  # 清除旧的Jobs文件及更新fileserver
/usr/bin/salt-master -d Publisher       # 将任务PUB到Minion端
/usr/bin/salt-master -d EventPublisher  # Event Publisher进程
/usr/bin/salt-master -d ReqServer_ProcessManager # ReqServer进程管理器
/usr/bin/salt-master -d MWorker  # 工作进程
/usr/bin/salt-master -d MWorker  # 工作进程
/usr/bin/salt-master -d MWorker  # 工作进程
/usr/bin/salt-master -d MWorker  # 工作进程
/usr/bin/salt-master -d MWorker  # 工作进程
/usr/bin/salt-master -d MWorkerQueue # 将Ret接口(ROUTER)数据转发到Worker(DEALER)

  

 

以上是关于SaltStack与ZeroMQ的主要内容,如果未能解决你的问题,请参考以下文章

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

SaltStack简明教程

带你快速入门SaltStack

saltstack系列——介绍与安装

saltstack安装部署与入门使用

saltstack