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

【Service】【MiddleWare】【Message】rabbitMQ的更多相关文章

  1. Service Oriented Architecture and WCF 【转】

    http://www.codeproject.com/Articles/515253/Service-Oriented-Architecture-and-WCF Introduction This a ...

  2. 【.NET Core项目实战-统一认证平台】第八章 授权篇-IdentityServer4源码分析

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何在网关上实现客户端自定义限流功能,基本完成了关于网关的一些自定义扩展需求,后面几篇将介绍基于IdentityServer ...

  3. 【.NET Core项目实战-统一认证平台】第二章网关篇-定制Ocelot来满足需求

    [.NET Core项目实战-统一认证平台]开篇及目录索引 这篇文章,我们将从Ocelot的中间件源码分析,目前Ocelot已经实现那些功能,还有那些功能在我们实际项目中暂时还未实现,如果我们要使用这 ...

  4. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之五 || Swagger的使用 3.3 JWT权限验证【必看】

    本文梯子 本文3.0版本文章 前言 1.如何给接口实现权限验证? 零.生成 Token 令牌 一.JWT ——自定义中间件 0.Swagger中开启JWT服务 1:API接口授权策略 2.自定义认证之 ...

  5. WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】

    http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...

  6. WCF学习系列三--【WCF Interview Questions – Part 3 翻译系列】

    http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ...

  7. 【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务

    [.NET Core项目实战-统一认证平台]开篇及目录索引 一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的 ...

  8. 【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了如何使用Dapper持久化IdentityServer4(以下简称ids4)的信息,并实现了sqlserver和mysql两种 ...

  9. 【.NET Core项目实战-统一认证平台】第三章 网关篇-数据库存储配置(1)

    [.NET Core项目实战-统一认证平台]开篇及目录索引 本篇将介绍如何扩展Ocelot中间件实现自定义网关,并使用2种不同数据库来演示Ocelot配置信息存储和动态更新功能,内容也是从实际设计出发 ...

  10. 【.NET Core项目实战-统一认证平台】第六章 网关篇-自定义客户端授权

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我们介绍了网关使用Redis进行缓存,并介绍了如何进行缓存实现,缓存信息清理接口的使用.本篇我们将介绍如何实现网关自定义客户端授权, ...

随机推荐

  1. 【Java】IO流

    File类 介绍 File类的一个对象,代表一个文件或一个文件目录 File类声明在java.io包下 File类中涉及关于文件或文件目录的创建.删除.重命名.修改时间.文件大小等方法,并未涉及到写入 ...

  2. 100_第一个vue-cli项目

    目录 什么是vue-cli 主要的功能 需要的环境 Node.js : http://nodejs.cn/download/ Git : https://git-scm.com/downloads 安 ...

  3. [luogu7207]Sob

    为了方便,先将$n$减小1,即两者范围分别为$[0,n]$和$[m,m+n]$ 结论:取$u=\min_{i\in [m,m+n],n\& i=n}i$,则$\forall 0\le i\le ...

  4. [luogu3292]幸运数字

    考虑点分治,将询问离线后计算重心到每一个点的线性基,然后再询问重心到每一个点的线性基,时间复杂度为$o(3600q)$,可以过(然而太菜的我写了倍增维护线性基,震惊于倍增和线性基常数之小) 1 #in ...

  5. [noi253]A

    定义f[i][j]表示从(i,j)走到最后一行的期望,不断从下往上dp那么对于每一行都可以得到m个方程. 但由于这m个方程不是DAG,因此考虑用高斯消元,但时间复杂度不对. 观察方程可以发现如果不断将 ...

  6. [nowcoder5668I]Sorting the Array

    令$f(n,b,m)=a[1..n]$(这里下标从1开始),考虑一些性质: 性质1.对于$\forall 1\le i\le n-m+1$,若$\exists 1\le j<i,a[j]> ...

  7. 学以致用 | Redis概念与简单实操

    Redis概念 Redis是一个由C语言编写.基于key-value存储结构的开源NoSQL数据库,其读写速度为10万次/秒,这个速度已经远远大于传统的关系型数据库. 使用场景 在高并发的情况下,可将 ...

  8. tomcat指定特定版本的jdk

    我是通过修改两个文件: setclasspath.bat和catalina.bat文件 linux在文件开头各自加上 export JAVA_HOME=/home/jdk/Java\jdk7\jdk1 ...

  9. java Scanner类与String类

    Scanner类的使用: ​ 导入Scanner包,new Scanner对象,记得调用System.in参数,调用对应next方法实现键盘录入. import java.util.Arrays; i ...

  10. 洛谷 P7323 - [WC2021] 括号路径(启发式合并)

    题面传送门 emmmm----怎么评价这个题嘛...感觉纯论算法,此题根本谈不上难题,不过 WC 时候太智障只拿了个 48pts 就走人了.总之,技不如人,甘拜吓疯( 首先要注意到几件事情: 如果 \ ...