oCommunicator_RabbitMQ_Handler
全部标签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=
RabbitMQ一、什么是消息队列消息队列可以看作是一个存放消息的容器,其中,生产者负责生产数据到消息队列中,而消费者负责消费数据。消息队列是分布式系统中重要的组件,目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ。消息队列主要解决了应用耦合、异步处理、流量削锋等问题。二、Rabbit特点RabbitMQ是一款使用Erlang语言开发的,实现AMQP(高级消息队列协议)的开源消息中间件,它实现了高效、可靠、可扩展的消息传递机制。以下是RabbitMQ的一些主要特点:可靠性:RabbitMQ提供了消息持久化、确认机制、事务等功能,确保消息传递的可靠性。灵活
一、下载首先应该下载erlang,rabbitmq运行需要有erland环境。官网地址:https://www.erlang.org/downloads下载rabbitmq官网环境:https://www.rabbitmq.com/download.html注意:el7对应centos7,el8对应centos8,centos7用erlang23版本或者23以下版本,centos8用erlang24版本。博主的系统是centos7的所以下载的是el7的二、安装1、在usr/local/下创建rabbitmq文件,将下载好的rpm文件上传到服务器mkdir/usr/local/rabbitmq2
文章目录前言1.安装erlang语言2.安装rabbitMQ3.内网穿透3.1安装cpolar内网穿透(支持一键自动安装脚本)3.2创建HTTP隧道4.公网远程连接5.固定公网TCP地址5.1保留一个固定的公网TCP端口地址5.2配置固定公网TCP端口地址前言RabbitMQ是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。由erlang开发的AMQP(AdvancedMessageQueue高级消息队列协议)的开源实现,由于erlang语言的高并发特性,性能较好,本质是个队列,FIFO先入先出,里面存放的内容是message,下面介绍通过在
前言:本文章将介绍RabbitMQ中的Topic(主题)模式,其中还会涉及‘#’和‘*’两个通配符在RabbitMQ中的区别。官网文档地址:https://rabbitmq.com/getstarted.html什么是Topic模式RabbitMQ的Topic模式是一种基于主题的消息传递模式。它允许发送者向一个特定的主题(topic)发布消息,同时,订阅者也可以针对自己感兴趣的主题进行订阅。在Topic模式中,主题通过一个由单词和点号组成的字符串来描述。例如,“*.china.#”表示匹配所有以“china”为结尾的主题,比如“bj.china”或“shanghai.china.weather
一.环境准备1、在pom文件中引入对应的依赖:dependency>groupId>org.springframework.boot/groupId>artifactId>spring-boot-starter-amqp/artifactId>/dependency>dependency>groupId>org.springframework.boot/groupId>artifactId>spring-boot-starter-web/artifactId>/dependency>2、在application.yml配置文件中配置RabbitMQ:spring:#rabbitmq配置rabb
目录标题消息丢失1.生产者生产消息到RabbitMQServer消息丢失场景1.网络问题2.代码层面,配置层面,考虑不全导致消息丢失解决方案:开启confirm模式2.队列本身可能丢失消息1.消息未完全持久化,当机器重启后,消息会全部丢失,甚至Queue也不见了解决方案:交换机持久化:在声明交换器时将durable设为true。队列持久化:在声明队列的时候把durable参数设置为true。消息持久化:2.单节点模式问题,节点挂了,消息只存在当前节点。硬盘坏了,那消息真的就无法恢复了3.默认的集群模式,消息只会存在与当前节点中,并不会同步到其他节点,其他节点也仅只会同步该节点的队列结构工作原理