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

最新文章

  1. TypeLoadException: 找不到 Windows 运行时类型“Windows.UI.Xaml.Controls.Binding
  2. SPREAD_NET6
  3. 如何在MyEclipse中部署struts2的环境
  4. POJ 1562(L - 暴力求解、DFS)
  5. CentOS在安装配置 Ngnix_tomcat_PHP_Mysql
  6. 云锁Linux服务器安全软件安装及防护webshell、CC、XSS跨站攻击设置
  7. 对维数组排序 array_multisort()的应用
  8. Codeforces Round #460 E. Congruence Equation
  9. js中new函数后带括号和不带括号的区别
  10. mongodb与java整合
  11. HTML5 &amp; tel &amp; make a phone call
  12. (cvpr2019 ) Technology details of Deep Learning for Multiple-Image Super-Resolution
  13. JVM总结-字节码
  14. 减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同
  15. Vue 实现countDown倒计时
  16. [/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127
  17. PHP 微信公众号开发 - 获取用户信息
  18. [转]分布式锁-RedisLockRegistry源码分析
  19. react常用命令
  20. Gitlab 自动构建心得

热门文章

  1. 模块化开发 | es6模块暴露与引入
  2. webpack 之js兼容性处理
  3. 【CVE-2020-1948】Apache Dubbo Provider反序列化漏洞复现
  4. JS中如何将yyyy-MM-dd HH:mm:ss格式的字符串转成Date类型
  5. python地理空间(1)--概念引入
  6. Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization
  7. javaweb监听
  8. P1759 通天之潜水(双写法+解析)
  9. 洛谷 P4548 - [CTSC2006]歌唱王国(概率生成函数)
  10. clickhouse使用的一点总结