赞
踩
消息指的是两个应用间传递的数据。数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象。
“消息队列(Message Queue)”是在消息的传输过程中保存消息的容器。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。
主要有三个作用:
RabbitMQ是一款使用Erlang语言开发的,实现AMQP(高级消息队列协议)的开源消息中间件。首先要知道一些RabbitMQ的特点,官网可查:
这里我采用的是Linux环境下安装:
CentOS7.9,erlang-22.3-1.el7.x86_64.rpm,rabbitmq-server-3.8.8-1.el7.noarch.rpm。
官网下载太慢了,这里我直接把rpm包给粘出来,大家可以去我的网盘上下载。
链接:https://pan.baidu.com/s/1UiQyYu7ZaJouXsVToFvGIA
提取码:wmlg
rpm -ivh erlang-22.3-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
设置下次开机自动开启rabbitmq服务
chkconfig rabbitmq-server on
/sbin/service rabbitmq-server start
/sbin/service rabbitmq-server status
到这里我们需要关闭刚刚开启的服务。
/sbin/service rabbitmq-server stop
rabbitmq-plugins enable rabbitmq_management
如果遇到如下问题,在创建虚拟机安装centos的时候,我们对自己的网络IP和主机名进行了设置,因此不再是默认。
我们需要通过hostname查看当前会话的主机名,另一种方式,通过hostnamectl status查看静态主机
名
修改hosts文件
vi /etc/hosts
第一次访问发现访问不了,问题是你没有关防火墙;
关闭防火墙
systemctl stop firewalld
之后就发现可以访问了!默认username=guest,password=guest。
登录还是登录不了滴!这时我们需要创建一个新用户,并把该用户赋予超级管理员的权限。
按照命令顺序执行
rabbitmqctl list_users //查看用户列表
rabbitmqctl add_user gyf 20020702 //设置一个新用户
rabbitmqctl set_user_tags gyf administrator //设置超级管理员
rabbitmqctl set_permissions -p "/" gyf ".*" ".*" ".*" //设置所有读写删改的权限
学习笔记太多啦!给小伙伴们放到百度网盘上了,要需要的小伙伴可以自行获取。
链接: https://pan.baidu.com/s/1BdzfPiGEFW0ttMOjXZleSg
提取码: 756m
延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好的利用RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。
当然,延时队列还有很多其它选择,比如利用 Java 的 DelayQueue,利用 Redis 的 zset,利用 Quartz或者利用 kafka 的时间轮,这些方式各有特点,看需要适用的场景。
加油!程序猿
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。