zoukankan      html  css  js  c++  java
  • RabbitMQ消息队列

    RabbitMQ消息队列

    消息队列:“消息队列”是在消息的传输过程中保存消息的容器。

    消息队列使用场景及介绍:消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题

    实现高性能,高可用,可伸缩和最终一致性架构

    使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ

    消息队列的应用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景

    详细解释详见https://blog.csdn.net/dj2008/arti cle/details/78872889

    MQ特点:

    MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。

    好处:

    在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

    MQ的使用场景:

    别说固定式使用场景了,说的透彻一点,他就是服务器之间通信的。 好处1:降低了两台服务器之间的耦合,哪怕是一台服务器挂了,另外一台服务器也不会报错或者休克,反正他监听的是MQ,只要服务器恢复再重新连上MQ发送消息,监听服务器就能再次接收。 好处2:MQ作为一个仓库,本身就提供了非常强大的功能,例如不再是简单的一对一功能,还能一对多,多对一,自己脑补保险箱场景,只要有特定的密码,谁都能存,谁都能取。也就是说能实现群发消息和以此衍生的功能。 好处3:现在普遍化的持久化功能,当MQ挂掉可以存储在磁盘等下重启恢复。(需要设置) 三、专业术语介绍 1. 生产者:在现实生活中就好比制造商品的工厂,他们是商品的生产者。生产者只意味着发送。发送消息的程序称之为一个生产者。 2. 队列:rabbitMQ就像一个仓库,一个仓库里面可以有很多队列,每个队列才是服务器之间消息通信的载体。 3.消费者:消费者就好比是从商店购买或从仓库取走商品的人,消费的意思就是接收。消费者是一个程序,主要是等待接收消息。 4.交换器:在生产者和消息队列之间的交换器,功能类似于网络宽带的交换机,可以根据不同的关键字,将信息发送到不同的队列。 上图的E就是交换器,通过关键字绑定,如果生产者给的消息中指定类型是ERROR,就给队列1,如果是INFO或者WARN就给队列2。当然也可以一个关键字绑定两个队列。(INFO等字段自己可以定义,也可以用*,#来匹配。*(星号)表示一个单词#(井号)表示零个或者多个单词。比如ok.yes可以被ok.*匹配到) 5.临时队列:根据需求临时创建的一条队列,在断开连接后自动删除。 四、流程介绍 生产者发送一条消息给交换机——交换机根据关键字匹配到对应的队列——将消息存入队列——消费者从队列中取出消息使用。

    RabbitMq:

    是一个在AMQP基础上完成的,由内在高并发的erlanng语言开发,可复用的企业消系统。他遵循Mozilla Public License开源协议,用在实时的对可靠性要求比较高的消息传递上。

    linux下安装RabbitMQ:

    1. 安装Erlang环境

    1)安装GCC GCC-C++ Openssl等模块,安装过就不需要安装了

    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

    2)安装ncurses

    yum -y install ncurses-devel

    3)安装erlang环境

    1. wget http://erlang.org/download/otp_src_18.2.1.tar.gz

    2. tar xvfz otp_src_18.2.1.tar.gz

    3. ./configure #有的人安装时需要进入到当前文件夹才可执行此命令

    4. make install

    1. 安装RabbitMQ
    1. 下载rabbitmq-server-3.6.9.tar.xz

    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-generic-unix-3.6.9.tar.xz

    1. 对于下载xz包进行解压,首先先下载xz压缩工具:

    yum install xz

    1. 对rabbitmq包进行解压:

    tar -xvf rabbitmq-server-generic-unix-3.6.9.tar

    1. 随后移动至/usr/local/下 改名rabbitmq:

    cp -r rabbitmq_server-3.6.9 /usr/local/rabbitmq

    1. 这种下载的方式解压后直接可以使用,无需再编译安装

    进入到rabbit文件内,其命令文件存在于sbin文件夹下,因此需要将sbin文件夹的路径添加到PATH中:

    vi /etc/profile

    找到export行,在下面新增加一行 [应该是在最后一行]

    添加如下命令

    export PATH=/usr/local/rabbitmq/sbin:$PATH

    执行source /etc/profile使得PATH路径更新,

    rabbitMQ安装成功。

    1. 随后启用MQ管理方式:

    1.rabbitmq-plugins enable rabbitmq_management #启动后台管理

    2.rabbitmq-server -detached #后台运行rabbitmq

    1. 设置端口号,可供外部访问:

    iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

    1. 添加用户和权限

    默认网页guest用户是不允许访问的,需要增加一个用户修改一下权限,代码如下:

    添加用户:rabbitmqctl add_user admin admin #第一个admin是账号 第二个是密码

    添加权限:rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

    修改用户角色:rabbitmqctl set_user_tags admin administrator

    然后就可以远程访问了,然后可直接配置用户权限等信息

    参考网址https://blog.csdn.net/qq_34021712/article/details/72567786

    启动和关闭命令:

     ① 到指定目录:cd /etc/init.d

     ② 停止:rabbitmq-server stop

     ③ 启动:rabbitmq-server start

     ④ 查看是否停止/启动成功:ps -ef |grep rabbitmq

    Ps:如果上述命令不行,可以直接进入启动目录:cd /usr/local/rabbitmq/sbin

    SpringBoot+RebbitMq 简单实现消息队列:

    https://blog.csdn.net/zhuzhezhuzhe1/article/details/80454956

  • 相关阅读:
    【裸机装系统】获取硬盘信息失败,请谨慎操作!
    【ORACLE】Win2008R2修改oracle数据库实例名
    【ORACLE】数据库空闲1分钟自动断开
    【ORACLE】oracle数据库用户密码复杂度配置
    【ORACLE】重写控制文件
    【ORACLE】oracle11g单实例安装
    【ORACLE】oracle打补丁
    【ORACLE】oracle11g dg搭建
    【ORACLE】oracle11g RAC搭建
    nginx负载均衡简单示例
  • 原文地址:https://www.cnblogs.com/ycq-qiang/p/11150737.html
Copyright © 2011-2022 走看看