一、安装更新系统软件包列表:sudoaptupdate安装RabbitMQ的依赖组件和GPG密钥:sudoaptinstall-ycurlgnupgcurl-fsSLhttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc|sudogpg--dearmor>/usr/share/keyrings/rabbitmq-archive-keyring.gpg添加RabbitMQ软件包存储库到系统源列表中:echo"deb[signed-by=/usr/share/ke
拉取镜像我部署的是3.8版本的dockerpullrabbitmq:3.8启动容器dockerrun-d--hostnamemy-rabbit--namerabbitmq--restartalways-eRABBITMQ_DEFAULT_USER=admin-eRABBITMQ_DEFAULT_PASS=admin-p15672:15672-p5672:5672--privileged=truerabbitmq:3.8启动后查看容器状态dockerps-a|greprabbitmq进入容器dockerexec-itrabbitmqbash 安装rabbitmq管理页面该命令需要在rabbitm
RabbitMQ----消息队列1.MQ的相关概念1.1什么是MQ1.2为什么要用MQ1.3MQ的分类1.4MQ的选择2.RabbitMQ2.1RabbitMQ的概念2.2四大核心概念2.3RabbitMQ核心部分2.4各个名词介绍2.5安装1.MQ的相关概念1.1什么是MQMQ(messagequeue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。1.2为什
什么是消息中间件简单的来说就是消息队列中间件,生产者发送消息到中间件,消息中间件用于保存消息并发送消息到消费者。消息中间件RabbitMQ的基本组件1)producer-生产者2)customer-消费者3)broker(经纪人)-MQ服务器,管理消息对列、消息及相关消息。(接收并存储生产者发送的消息,发送消息到消费者)4)exchange-交换机,将生产者的消息按照一定规则发送给对应的消息对列queue5)queue-消息对列,队列,消息存放的容器,消息先进先出6)Message-消息,程序间的通信的数据什么是消息队列queue(生产者生产msg-queue,消费者监听queue-消费)消息
版本:RabbitMQ3.9.7控台台访问路径:http://localhost:15672/#/queues使用控制台创建队列登录创建队列(1)输入自定义的队列名称(2)其他输入参数为默认值即可(3)点击【Addqueue】创建队列成功查看已创建队列信息点击名称查看队列详情控制台使用说明登录后,您将看到RabbitMQ的控制台界面。该界面将显示以下几个主要部分:Overview:概览页面提供了关于RabbitMQ节点、队列和交换机等的统计信息。Connections:连接页面提供了有关当前客户端连接的详细信息。Channels:通道页面提供了有关当前打开通道的详细信息。Exchanges:交
当我们消息消费失败的时候,可以进行重试,什么情况下会重发消息1、网络抖动2、程序抛出异常没有try-catchRabbitMQ自动补偿机制触发:(多用于调用第三方接口)1.当我们的消费者在处理我们的消息的时候,程序抛出异常情况下(默认无限次数重试),如果这里的异常try-catch后自己配置的重试机制是不生效的2.应该对我们的消息重试设置间隔重试时间,比如消费失败最多只能重试5次,间隔3秒(防止重复消费,幂等问题)如果重试5次,也就是15秒内重试还是失败情况下应该如何处理1.默认情况下,重试多次还是失败的话,会自动删除该消息(消息可能会丢失)解决思路:A:如果重试多次还是失败的情况下,最终存放
1.背景最近研发的物联网底层框架使用了RabbitMQ作为消息队列,如果监控消息队列对其通道是否出现阻塞能够及时获知与让管理员收到预警并及时处理,这里我们会采用RabbitMQ的rabbitmq_management插件。利用其提供的API进行获取信息,从而实现队列监控的目标。2.启动rabbitmq_management插件如何安装RabbitMQ可以参考我的这篇博客:《物联网架构实例—Ubuntu安装RabbitMQ》,其中在3.1.中提到:启用web端可视化操作界面 3.对接rabbitmq_management插件的API因为rabbitmq_management采用的是Curl命令的
目录一、数据丢失场景二、数据可靠性方案1、生产者丢失消息解决方案2、MQ队列丢失消息解决方案3、消费者丢失消息解决方案一、数据丢失场景MQ消息数据完整的链路为:从Producer发送消息到RabbitMQ服务器中,再由Broker服务的Exchange根据Routing_Key路由到指定的Queue队列中,最后投送到消费者中完成消费。所以消息在上面三个节点都可能存在消息丢失的情况:生产者丢失消息:生产者将消息发送到服务器过程中,由于网络问题或服务器问题可能会导致消息发送失败而导致消息丢失;MQ队列丢失消息:消息是存放在MQ服务器的消息队列中的,但由于MQ服务故障导致崩溃或服务重启,就可能会导致
控制台发消息点击queues-->Publishmessage发送消息Headers设置contentTypeapplication/jsonPayload里填上发送内容,点击Publishmessage就可以控制台查看消息点击queues-->GetMessage(s)-->Payload里查看内容getmessage只是查看消息,不会消费该条消息
1、composer安装AMQP扩展composerrequirephp-amqplib/php-amqplib2、RabbitMQ配置 在config目录下创建rabbitmq.php文件'','port'=>'5672','user'=>'','password'=>'','vhost'=>'','exchange_name'=>'','queue_name'=>'','route_key'=>'','consumer_tag'=>'',];3、生产者代码app目录下创建Producer.phpmq_config=config('rabbit_mq');$this->connection=