zoukankan      html  css  js  c++  java
  • SaltStack 04-SaltStack的ZeroMQ的简介

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

    ØMQ --也拼写作ZeroMQ,0MQ或ZMQ。

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

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

    • ZeroMQ支持Publish/Subscribe,即发布与订阅模式,我们经常简称Pub/Sub。
    • Salt Master运行两个网络服务,其中一个是ZeroMQ PUB系统,默认监听4505端口。
    • 可以通过修改/etc/salt/master配置文件的publish_port参数设置。
    • 它是salt的消息发布系统,如果查看4505端口,会发现所有的Minion连接到Master的4505端口,TCP状态持续保持为ESTABLISHED。
    [root@saltStack01 base]# lsof -i:4505 -n
    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    salt-mini 11073 root   21u  IPv4 383431      0t0  TCP 10.124.124.78:39330->10.124.124.78:4505 (ESTABLISHED)
    salt-mast 31457 root   16u  IPv4 301885      0t0  TCP *:4505 (LISTEN)
    salt-mast 31457 root   18u  IPv4 301971      0t0  TCP 10.124.124.78:4505->10.124.124.78:39330 (ESTABLISHED)
    salt-mast 31457 root   19u  IPv4 414261      0t0  TCP 10.124.124.78:4505->10.124.124.79:41858 (ESTABLISHED)
    salt-mast 31457 root   20u  IPv4 414262      0t0  TCP 10.124.124.78:4505->10.124.124.80:46214 (ESTABLISHED)
    [root@saltStack01 base]#
    

    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启动的进程的名称。
    [root@saltStack01 base]# yum install -y python-setproctitle
    [root@saltStack01 base]# systemctl restart salt-master
    [root@saltStack01 base]# systemctl restart salt-minion
    [root@saltStack01 base]# ps aux | grep salt
    root      11070  0.0  0.2 306960 21308 ?        Ss   Apr13   0:00 /usr/bin/python /usr/bin/salt-minion
    root      11073  0.0  0.6 699156 47392 ?        Sl   Apr13   1:59 /usr/bin/python /usr/bin/salt-minion
    root      11081  0.0  0.2 402132 20104 ?        S    Apr13   0:00 /usr/bin/python /usr/bin/salt-minion
    root      80387  3.1  0.5 388072 39988 ?        Ss   09:47   0:00 /usr/bin/python /usr/bin/salt-master ProcessManager
    root      80393  0.0  0.2 310484 20028 ?        S    09:47   0:00 /usr/bin/python /usr/bin/salt-master MultiprocessingLoggingQueue
    root      80398  0.0  0.4 468808 33788 ?        Sl   09:47   0:00 /usr/bin/python /usr/bin/salt-master ZeroMQPubServerChannel
    root      80401  0.0  0.4 386880 33420 ?        S    09:47   0:00 /usr/bin/python /usr/bin/salt-master EventPublisher
    root      80402  0.3  0.4 390336 37064 ?        S    09:47   0:00 /usr/bin/python /usr/bin/salt-master Maintenance
    root      80403  0.0  0.4 387928 34128 ?        S    09:47   0:00 /usr/bin/python /usr/bin/salt-master ReqServer_ProcessManager
    root      80404  0.0  0.4 764784 34720 ?        Sl   09:47   0:00 /usr/bin/python /usr/bin/salt-master MWorkerQueue
    root      80411 11.4  0.6 483788 47676 ?        Sl   09:47   0:01 /usr/bin/python /usr/bin/salt-master MWorker-0
    root      80412 11.4  0.6 483800 47676 ?        Sl   09:47   0:01 /usr/bin/python /usr/bin/salt-master MWorker-1
    root      80413 11.2  0.6 483800 47688 ?        Sl   09:47   0:01 /usr/bin/python /usr/bin/salt-master MWorker-2
    root      80414 11.3  0.6 483796 47684 ?        Sl   09:47   0:01 /usr/bin/python /usr/bin/salt-master MWorker-3
    root      80415 11.3  0.6 483800 47692 ?        Sl   09:47   0:01 /usr/bin/python /usr/bin/salt-master MWorker-4
    root      80416  0.0  0.4 461804 34484 ?        Sl   09:47   0:00 /usr/bin/python /usr/bin/salt-master FileserverUpdate
    root      81400  0.0  0.0 112652   956 pts/1    S+   09:47   0:00 grep --color=auto salt
    [root@saltStack01 base]#
    

    进程描述

    /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)
    
  • 相关阅读:
    Redis_常用5大数据类型简介
    redis_安装
    Redis_NoSql分布式数据库CAP原理
    redis_NoSql数据库四大分类
    redis_NoSql入门概述数据模型简介
    redis_NoSql入门概述
    NGINX下配置CACHE-CONTROL
    (转)centos6.5安装VNC
    django出现__init__() got an unexpected keyword argument 'mimetype‘ 问题解决
    凌乱的2015
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/9504228.html
Copyright © 2011-2022 走看看