• 【Service】【MiddleWare】【Message】rabbitMQ


    1. 概念:

    1.1. 消息型中间件:遵循AMQP协议(高级消息队列协议)AMQP 0-9-1 AMQP 1.0

    1.2. 路由模型:

      direct

      topic

      fan-out

      headers

    1.3. broker:

      exchange

      binding

      queue

    1.4. vitrualhost:虚拟主机

      exchange

      binding

      queue

    1.5. 中间件的实现:

      Qpid, ActiveMQ(apache):Java

      RabbitMQ:erlang

      Kafka

      0MQ

    2. 安装:

      程序包:

        epel:rabbitmq-server

          插件:rabbitmq-plugins(enable|disable|list)

            rabbitmq_management:监听于15672端口

      配置方式:

        环境变量:网络参数及配置文件路径;

        配置文件:服务器各组件访问权限、资源限制、插件及集群;

        运行时参数:集群的运行时参数;

      环境变量:/etc/rabbitmq/rabbit-env.conf

        RABBITMQ_BASE:数据库和日志文件;对unix-like主机不常用;

        RABBITMQ_CONFIG_FILE:配置文件路径:/etc/rabbitmq/rabbitmq

        RABBITMQ_LOGS:

        RABBITMQ_NODE_IP_ADDRESS:监听的IP;

        RABBITMQ_NODE_PORT:

        RABBITMQ_PLUGINS_DIR

      配置文件:

        auth_mechanisms:认证机制;SASL,简单认证安全层

        default_user:guest

        default_pass:guest

        default_permission

        disk_free_limit

        heartbeat:

        hipe_compile:是否使用hipe编译,使用hipe编译性能提高

        log_levels: {none|error|warning|info}

        tcp_listeners:监听的地址和端口 5672

        ssl_listeners:基于ssl通信协议监听的地址和端口

        vm_memory_high_watermark:

      rabbitmqctl命令:

        运行时参数;

          set_parameter [-p <vhostpath>] <component_name> <name> <value>

          clear_parameter [-p <vhostpath>] <component_name> <key>

          set_policy  [-p <vhostpath>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition>

          clear_policy  [-p <vhostpath>] <name>

          set_vm_memory_high_watermark <fraction>

        

        用户管理:

          add_user

          delete_user

          change_password

          clear_password

          set_user_tags

          list_user

        虚拟主机:

          add_vhost

          delete_vhost

          list_vhost

        权限管理:

          set_permissions

          clear_permissions

          list_permissions

          list_user_permissions

        组件查看命令:

          list_queue

          list_exchanges

          list_bindings

          list_connections

          list_channels

          list_consumers

        broker状态查看:

          status

        环境变量查看:

          environment

        执行erlang底层表达式:

          eval <expr>

        关闭指定的连接:

          close_connection <connectionid> <explanation>

        设定内存的高水位标记

          set_vm_memory_high_watermark <function>

    3. rabbitmq cluster

    3.1. 步骤:

      在master节点:

        复制其cookie至其他各节点,要注意保持其权限为400;

        /var/lib/rabbitmq/.erlang.cookie

      在各从节点:

        停止应用:rabbitmqct stop_app

        加入集群:rabbmitmqctl join_cluster CLUSTER_NAME

        启动应用:rabbmitmqctl start_app

    3.2. 注意

      使用短格式主机名;解析的名称与每个主机名称保持一致

      时间同步:

      各节点要启动rabbitmq_management插件;

    4. 基于haproxy的LB集群:

      listen rabbitmq:5672

        mode tcp

        status enable

        balance roundrobin

        server rabbit01 IP:PORT check inter 5000

        server rabbit02 IP:PORT check inter 5000

  • 相关阅读:
    120所国家重点建设大学(211工程和教育部直属)[国家一类本科大学]详细情况一览表
    VC画线几个常见方法
    中国地学35个国家重点实验室分布一览
    可执行文件加入Linux默认路径的办法
    SVN 常用命令 客户端
    ls(list) linux 功能说明
    Vim
    Linux添加FTP用户并设置权限
    tar [cxtzjvfpPN] 文件与目录
    linux etc/passwd 有关
  • 原文地址:https://www.cnblogs.com/demonzk/p/7445593.html
Copyright © 2020-2023  润新知