zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    前端笔记之React(五)Redux深入浅出
    前端笔记之React(四)生命周期&Virtual DOM和Diff算法&日历组件开发
    前端笔记之React(三)使用动态样式表&antd&React脚手架&props实战
    前端笔记之React(二)组件内部State&React实战&表单元素的受控
    前端笔记之React(一)初识React&组件&JSX语法
    详解Asp.net MVC DropDownLists
    String.Format格式说明
    jquery日历datepicker的使用方法
    asp.net文本编辑器(FCKeditor)
    将jira添加至开机自启动
  • 原文地址:https://www.cnblogs.com/demonzk/p/7445593.html
Copyright © 2011-2022 走看看