SaltStack快速入门(5)-SaltStack与ZeroMQ

    我们进行自动化运维大多数情况下,是我们的服务器数量已经远远超过人工SSH维护的范围,SaltStack可以支数以千计,甚至更多的服务器。这些性能的提供主要来自于ZeroMQ,因为SaltStack底层是基于ZeroMQ进行高效的网络通信。ZMQ用于node与node间的通信,node可以是主机也可以是进程。 ZeroMQ简介   ZeroMQ(我们通常还会用ØMQ , 0MQ, zmq等来表示)是一个简单好用的传输层,像框架一样的一个套接字库,他使得Socket编程更加简单、简洁和性能更高。它还是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。 发布与订阅 ZeroMQ支持Publish/Subscribe,即发布与订阅模式,我们经常简称Pub/Sub。 [attach]2[/attach]  Salt Master运行两个网络服务,其中一个是ZeroMQ PUB系统,默认监听4505端口。可以通过修改/etc/salt/master配置文件的publish_port参数设置。它是salt的消息发布系统,如果查看4505端口,会发现所有的Minion连接到Master的4505端口,TCP状态持续保持为ESTABLISHED。

[root@ master]# lsof -i:4505

    这样Salt Master发布一个消息,所有连接到4505这个Pub端口上的Minion都会接收到这个消息。然后每个Minion会再判断自己是否需要执行这个消息。 请求与响应 ZeroMQ支持Request-Reply,即请求与响应模式,我们经常简称REQ/REP。 [attach]3[/attach]      Salt Master运行的第二个网络服务就是ZeroMQ REP系统,默认监听4506端口,可以通过修改/etc/salt/master配置文件的ret_port参数设置。它是salt客户端与服务端通信的端口。比如说Minion执行某个命令后的返回值就是发送给Master的4506这个REP端口 由于我们在最初安装了python-setproctitle软件包,所以我们可以直接看到Salt Master启动的进程的名称。

[root@ops-node1 ~]# ps aux | grep salt /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)  

2 个评论

没有一定基础都看不懂
赵班长,很给力

要回复文章请先登录注册