rabbitmq
文章平均质量分 52
Data & safety
这个作者很懒,什么都没留下…
展开
-
RabbitMQ 内存和磁盘警告
内存和磁盘警告有两种情况下,Rabbit MQ会停止读取客户端的连接socket,为了防止crash崩溃,这两种情况是:内存使用达到配置值磁盘空间下降到配置值下在这两种情况下,服务器会临时阻塞连接—服务器会暂停读取发布消息的客户端的连接,连接心跳监控也会被禁用,在rabbitmqctl和管理查建中的所有网络连接如果是blocking状态,意味着他们没有尝试发送,因此可以继续,如果是blocked状态,意味着他们已经发布了,现在需要被暂停。集群的警告当运行Rabbit MQ集群的时候,转载 2021-08-17 16:18:57 · 1291 阅读 · 0 评论 -
生产环境遇到的rabbitmq队列堆积原因分析和解决方案
在8月5、6、7连续三天晚上10点出现充值相关几个消息堆积的问题,经过分析发现主要问题是充值项目对mq的使用存在一些不合理的地方,当mq负载高时会出现堆积现象。具体原因如下: 1、采用的消息模式是get模式,而不是高效的deliver模式,经过在新搭建的mq服务器测试发现,get模式:5000条/秒便会出现严重堆积, deliver模式:20000条/秒不会堆积,如果按照充值项目的写法由于存在后续的问题,每秒几百条的写入就会经常出现消息堆积; 2、消息的生产和消费共用mq链接和chann...转载 2021-01-18 11:49:24 · 1290 阅读 · 0 评论 -
rabbitmq持久化
修改autodelete ,交换器有此属性,消息队列也有,设为true表示临时,不会持久化,设为false,服务器宕机也能保存到磁盘 @Component @RabbitListener( bindings = @QueueBinding( value = @Queue(value = "${mq.config.queue.sms}",autoDelete = "false"), exchange = @Exchange(value = "${mq.c.转载 2021-01-18 11:46:30 · 247 阅读 · 0 评论 -
rabbitmq持久化数据太大导宕机
解决方案:1.定时清理持久化文件2.消息消费后马上删除mq队列中的消息 @Component public class ConsumerService { private static final Logger logger = LoggerFactory.getLogger(ConsumerService.class); @RabbitListener(queues = RabbitmqConfig.QUEUE) public v...转载 2021-01-18 11:44:10 · 824 阅读 · 0 评论 -
Kafka与RabbitMQ区别
基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择 RabbitMQ 还是 Kafka 没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。第一篇文章介绍了 RabbitMQ 和 Apache Kafka内部实现的相关概念。本篇文章会从两个方面探讨这两种技术之间的差异,一个是这两种技术之间的显著差异,另一个是对于软件架构师和开发者需要注意的差异。我们先来说说架构模式,也转载 2021-01-17 21:47:01 · 1399 阅读 · 0 评论 -
rabbitmq持久化
持久化是为提高rabbitmq消息的可靠性,防止在异常情况(重启,关闭,宕机)下数据的丢失rabbitmq持久化分为三个部分:交换器的持久化、队列的持久化和消息的持久化交换器的持久化交换器的持久化是通过声明队列时,将durable参数设置为true实现的。如果交换器不设置持久化,那么rabbitmq服务重启之后,相关的交换器元数据将会丢失,不过消息不会丢失,只是不能将消息发送到这个交换器中了,建议将交换器设置为持久化queueDeclare(queue, durable, exclusi.转载 2021-01-17 20:59:08 · 478 阅读 · 0 评论 -
RabbitMQ消息持久化
目录一、前言 二、队列持久化 2.1 查看存在的队列和消息数量 2.2 持久化队列 三、消息持久化 四、总结回到顶部一、前言 如果我们希望即使在RabbitMQ服务重启的情况下,也不会丢失消息,我们可以将Queue与Message都设置为可持久化的(durable),这样可以保证绝大部分情况下我们的RabbitMQ消息不会丢失。当然还是会有一些小概率事件会导致消息丢失。回到顶部二、队列持久化 2.1 查看存在的队列和消息数量 在windo..转载 2021-01-17 20:57:19 · 406 阅读 · 0 评论 -
rabbitmq和erlang卸载
1、卸载rabbitmq相关1.1卸载前先停掉rabbitmq服务,执行命令$ service rabbitmq-server stop1.2查看rabbitmq安装的相关列表$ yum list | grep rabbitmq1.3卸载rabbitmq已安装的相关内容$ yum -y remove rabbitmq-server.noarch2、卸载erlang2.1查看erlang安装的相关列表$ yum list | grep erlang2.2卸载er转载 2020-09-04 11:40:42 · 507 阅读 · 0 评论 -
URL中%2F,%2B等特殊字符
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。如果不使用转义字符,这些编码就会当URL中定义的特殊字符处理。下表中列出了一些URL特殊符号及编码 十六进制值1) + URL 中+号表示空格 %2B2) 空格 URL中的空格可以用+号或者编码 %203) / 分隔目录和子目录 %2F4) ? 分隔实际的 URL 和参数转载 2020-08-24 14:04:16 · 36280 阅读 · 0 评论 -
RabbitMQ 内存控制 硬盘控制
一、内存控制:vm_memory_high_watermark 该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使用内存80%。如果把该值配置为0,将关闭所有的publishing 。rabbitmqctl set_vm_memory_high_watermark 0Paging 内存阈值,该值为默认为0.5,该值为vm_memory_high_watermark的20%时,将把内.转载 2020-08-20 10:27:00 · 804 阅读 · 0 评论 -
基于高可用配置的RabbitMQ集群实践
本文将提供一个基于高可用配置的RabbitMQ集群方案。通过介绍RabbitMQ的基本概念、主要作用和使用场景,并搭建RabbitMQ单节点环境、用程序演示消息发送接收过程,以及搭建RabbitMQ高可用集群环境,来生动而完整地介绍整个集群方案。并结合自己的实践,分享一些在集群环境下的客户端开发优化经验。 本文内容主要包括以下几个方面: 1、RabbitMQ基础介绍 2、RabbitMQ单节点环境的实践 3、RabbitMQ高可用集群环境的实践 4、总结 一、 Rabbi转载 2020-08-12 15:55:26 · 376 阅读 · 0 评论 -
rabbitmq集群部署及配置
消息中间件rabbitmq,一般以集群方式部署,主要提供消息的接受和发送,实现各微服务之间的消息异步。本篇将以rabbitmq+HA方式进行部署。一、原理介绍rabbitmq是依据erlang的分布式特性(RabbitMQ底层是通过Erlang架构来实现的,所以rabbitmqctl会启动Erlang节点,并基于Erlang节点来使用Erlang系统连接RabbitMQ节点,在连接过程中需要正确的Erlang Cookie和节点名称,Erlang节点通过交换Erlang Cookie以获得认证)来实转载 2020-08-12 14:48:08 · 544 阅读 · 0 评论 -
rabbitmq集群节点操作
节点恢复过程中把数据删掉很重要,恢复一单结点,再清数据节点增加:1. rabbitmq-server -detached --- .erlang.cooike的权限,400 属主rabbitmq2.rabbitmqctl stop_app3. rabbitmqctl join_cluster --ram rabbit@rabbitmq14. rabbitmqctl start_app5. rabbitmqctl cluster_status节点删除1. rab...转载 2020-08-12 14:39:22 · 1211 阅读 · 0 评论 -
rabbitmq数据备份与还原
阅读目录一、场景 二、元数据备份和还原 1、操作 2、导出数据 3、导入数据 4、验证数据 三、消息数据备份和还原 1、确定数据目录 2、为避免数据的一致性,需先停掉服务 3、备份数据目录 4、还原数据 5、修改数据目录权限 6、启动B服务器上rabbitmq服务 7、验证消息数据是否还原成功 四、注意正文一、场景现在有服务器A和服务器B ,由于业务需要,要求把服务器A上mq的数据迁移到服务器B上,rabbitmq的数据包括元数...转载 2020-08-07 14:53:02 · 2564 阅读 · 0 评论 -
rabbitmq配置参数
一般的配置文件位置:/etc/rabbitmq/rabbitmq.config一 rabbitmq 生产部署RabbitMQ 常用的三种自定义服务器的通用方法:配置文件 rabbitmq.conf 环境变量文件 rabbitmq-env.conf 补充配置文件 advanced.configrabbitmq.conf和rabbitmq-env.conf的位置在二进制安装中路径是在 :安装目录下的/etc/rabbitmq/ rpm 安装: /etc/rabbitmq/如果rabbi转载 2020-08-05 18:02:52 · 1400 阅读 · 0 评论 -
RabbitMQ之Exchange、Queue参数详解
1.先来介绍RabbitMQ中的成员Producer(生产者): 将消息发送到Exchange Exchange(交换器):将从生产者接收到的消息路由到Queue Queue(队列):存放供消费者消费的消息 BindingKey(绑定键):建立Exchange与Queue之间的关系(个人看作是一种规则,也就是Exchange将什么样的消息路由到Queue) RoutingKey(路由键):Producer发送消息与路由键给Exchange,Exchange将判断RoutingKey是否符合Bin转载 2020-08-05 16:36:51 · 1627 阅读 · 0 评论 -
RabbitMQ学习之集群模式
由于RabbitMQ是用erlang开发的,RabbitMQ完全依赖Erlang的Cluster,因为erlang天生就是一门分布式语言,集群非常方便,但其本身并不支持负载均衡。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在 $home/.erlang.cookie 中(像我的root用户安装的就是放在我的root/.erlang.cookie中),文件是400的权限。所以必须包管各节点cookie对峙一致,不然节点之间就无法通信。RabbitMQ的集群转载 2020-08-05 16:06:00 · 255 阅读 · 0 评论 -
RabbitMQ用户角色及权限控制
RabbitMQ的用户角色分类:none、management、policymaker、monitoring、administratoruser 有5种 tags :management :访问 management plugin;policymaker :访问 management plugin 和管理自己 vhosts 的策略和参数;monitoring :访问 management plugin 和查看所有配置和通道以及节点信息;administrator :一切权限;None :无配置R原创 2020-08-04 14:40:22 · 545 阅读 · 0 评论 -
rabbitmq权限设置
RabbitMQ中的角色分为如下五类:none、management、policymaker、monitoring、administrator(1) 超级管理员(administrator)可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。(2) 监控者(monitoring)可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁...原创 2020-07-06 11:25:48 · 1633 阅读 · 0 评论 -
RabbitMQ管理命令rabbitmqctl详解
https://www.ywnds.com/?p=4738学习rabbitmq,原理之后第一个要掌握的就是rabbitmqctl这个命令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl命令了,当然还有HTTP API和UI两种管理手段。rabbitmqctl的使用方法:rabbitmqctl [-n <node>] [-q] <command> [<command options>]rabbitmqctl [-n <node>].原创 2020-07-05 21:56:45 · 9729 阅读 · 0 评论 -
Linux下安装rabbitmq
1.安装Erlang环境1)安装GCC GCC-C++ Openssl等模块,安装过就不需要安装了yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel2)安装ncursesyum -y install ncurses-devel3)安装erlang环境wget http://erlang.org/download/otp_src_18.2.1.tar.gztar xvfz otp_src_1原创 2020-07-05 16:56:12 · 366 阅读 · 0 评论