
rabbitmq
文章平均质量分 50
要争气
人生来平凡,因奋斗进取而不凡。
展开
-
RabbitMQ消费重试
配置:server: port: 8080spring: rabbitmq:# 单机连接配置host port即可# host: 192.168.50.134# port: 5672# 集群连接信息 addresses: 192.168.50.134:5673,192.168.50.134:5672,192.168.50.134:5674 virtual-host: /dev username: tech password: t原创 2021-11-05 16:05:20 · 1745 阅读 · 0 评论 -
镜像集群搭建及Springboot连接镜像集群
前面已经搭建了由3个节点组成的普通集群,接下来在普通集群的基础上搭建镜像集群,实现高可用以及消息备份。登录任意节点的管控台:Admin-->policies-->Add / update a policyName: 策略名称Pattern: 匹配任意队列或交换机ha-mode:all 在所有节点同步消息ha-sync-mode:automatic 自动同步消息在任意节点上创建1个队列,如果看到如下信息,说明镜像集群搭建完成以后如...原创 2021-11-05 10:12:37 · 259 阅读 · 0 评论 -
SpringBoot连接普通集群
使用Docker搭建好一个三个节点组成的Rabbitmq集群,接下来用SpringBoot项目连接集群。依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>配置:原创 2021-11-04 22:16:48 · 1391 阅读 · 0 评论 -
RabbitMQ普通集群搭建
搭建第一个节点:docker run -d --hostname rabbit_host1 --name rabbitmq1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_NODENAME=rabbit -e RABBITMQ_DEFAULT_USER=tech -e RABBITMQ_DEFAULT_PASS=tech -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie_tech' --privileged=true -v /usr原创 2021-11-03 16:24:13 · 4815 阅读 · 2 评论 -
RabbitMQ死信队列 延迟队列 利用延迟队列实现关单功能
死信队列用于存放死信,投递的消息在一定的条件下会变为死信,如消息被消费者拒收,并没有设置重回队列;队列中的消息满了,在发送消息;队列的消息达到TTL时间未被消费,可以给单条消息设置过期时间,也可以给一个队列中的消息设置过期时间,在投递的消息变为死信后,死信会被投递到队列绑定的死信交换机,死信交换机根据路由key将消息路由到死信队列。新建死信交换机新建死信队列绑定死信交换机和死信队列新建普通队列,指定队列中消息的过期时间,指定死信交换机,指定发送消息到死信交...原创 2021-11-02 16:53:36 · 435 阅读 · 0 评论 -
RabbitMQ消息的可靠性投递
消息的投递路径:生产者->交换机->队列->消费者消息的可靠性投递包括:发送的可靠性和消费的可靠性。消息发送的可靠性,可以通过发送确认机制和交换机转发消息到队列的确认机制(confirmCallback和returnCallback)来实现,消费的可靠性可以通过手动确认机制来实现。 开启确认机制后,由于频繁的确认交互,会降低RabbitMQ吞吐量,不是特别重要的消息不建议开启。一 发送确认机制...原创 2021-11-01 16:47:08 · 365 阅读 · 0 评论 -
RabbitMQ整合SpringBoot
maven依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd.原创 2021-10-30 10:17:01 · 140 阅读 · 0 评论 -
Topic 交换机
发送消息时,需要指定路由key,消息到达交换机后,根据路由key匹配队列,队列在绑定交换机时指定了路由key,支持通配符,*代表1个词,#代表1个或多个词,交换机根据路由key把消息转发到匹配的队列中。package com.tech.rabbitmq.nospring.topic;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rab...原创 2021-10-29 17:41:29 · 370 阅读 · 0 评论 -
Direct类型交换机
生产者发送消息,指定消息路由key,到达direct类型交换机,direct类型交换机与队列绑定,并指定了路由key,direct交换机根据消息的路由key与绑定的路由key匹配,找到对应的队列,交换机将消息转发到队列中。package com.tech.rabbitmq.nospring.direct;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;impo...原创 2021-10-29 16:54:55 · 468 阅读 · 0 评论 -
发布/订阅模式
发送消息到交换机,交换机并不存储消息,只是转发消息,当交换机的类型是fanout类型时,消息会被转发到所有与交换机绑定的队列中。package com.tech.rabbitmq.nospring.pub;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbit...原创 2021-10-26 14:25:48 · 114 阅读 · 0 评论 -
工作队列模型
Work queuesDistributing tasks among workers (thecompeting consumers pattern)当生产者生产能力过高时,需要引入多个消费者来消费消息,默认这些消费者采用轮询的方式消费消息,不管消费者的消费速度如何,消费者消费的消息数量贴近于一致。生产者发送多条消息package com.tech.rabbitmq.nospring.work;import com.rabbitmq.client.Channel;im..原创 2021-10-25 16:47:23 · 213 阅读 · 0 评论 -
简单队列模型
"Hello World!"The simplest thing that doessomething消息发送者:package com.tech.rabbitmq.normal;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import java.nio.charset.Standar..原创 2021-10-25 16:02:20 · 252 阅读 · 0 评论 -
基于Docker安装RabbitMQ和管控平台
docker run -d --hostname rabbit_host1 --name test_rabbit -e RABBITMQ_DEFAULT_USER=tech -e RABBITMQ_DEFAULT_PASS=tech -p 15672:15672 -p 5672:5672 rabbitmq:management说明:-d docker后台运行容器--hostname 节点名称--name 容器名称-e 添加容器内部的相关参数(RABBITMQ_DEFAULT_US..原创 2021-10-25 14:20:40 · 182 阅读 · 0 评论 -
Kafka、RabbitMQ、RocketMQ 之间的区别是什么 ?
Kafka采用拉取(Pull)方式消费消息,吞吐量相对更高,适用于海量数据收集与传递场景,例如日志采集和集中分析。RabbitMQ在吞吐量方面略有逊色,但支持更多的消息队列功能。RocketMQ出自 阿里公司的开源产品,用 Java 语言实现,在设计时参考了 Kafka,并做出了自己的一些改进。在阿里集团被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等场景。以下从性能、数据可靠性、服务可用性、功能等方面给出具体的对比分析,供用户选型参考。性能消息中间..转载 2021-10-18 09:50:33 · 4705 阅读 · 0 评论 -
jms、amqp、mqtt区别与联系
消息传递作为基本通信机制已经在全世界成功运用。无论是人与人、机器与人还是机器与机器之间,消息传递一直都是唯一常用的通信方式。在双方(或更多)之间交换消息有两种基本机制。同步消息传递 异步消息传递同步消息传递在这种情况下使用,当消息发送者希望在某个时间范围内收到响应,然后再进行下一个任务。基本上就是他在收到响应前一直处于“阻塞”状态。异步消息意味着发送者并不要求立即收到响应,而且也不会阻塞整个流程。响应可有可无,发送者总会执行剩下的任务。上面提到的技术,当两台计算机上的程序相互通信的时候,就广转载 2021-10-15 16:35:27 · 518 阅读 · 0 评论 -
RabbitMQ笔记
1 MQ引言1.1 什么是MQMQ(Message Quene) : 翻译为消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1.2 MQ有哪些当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、Rab转载 2021-08-01 11:55:40 · 320 阅读 · 0 评论 -
RabbitMQ 七战 Kafka,差异立现!
作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,转载 2021-07-31 18:58:26 · 96 阅读 · 0 评论 -
RabbitMQ 持久化
如果RabbitMQ服务器宕机,也会造成消息丢失,可以使用消息持久化和队列持久化解决。队列持久化需要生产者和消费者都开启,消息持久化在生产者开启。生产者:package persist;import java.io.IOException;import java.util.concurrent.TimeoutException;import com.rabbitmq.client原创 2017-03-08 17:57:05 · 695 阅读 · 0 评论 -
RabbitMQ 发布和订阅
发布和订阅:一个消息转发给多个消费者;生产者并不是将消息直接发送给消息队列,而是发送给交换机,由交换机根据规则发送给指定的消息队列或丢弃。临时队列:当没有消费者链接时候,队列的消息会被丢弃,队列会被自动删除。消息发布者:package pub.exch;import java.io.IOException;import com.rabbitmq.client.Cha原创 2017-03-09 13:58:12 · 446 阅读 · 0 评论 -
RabbitMQ 路由
我们定义交换机的时候,若指定类型为fanout,会把消息发到全部与之绑定的队列中,当为direct时候,可以定义一个关键字(消息类型),使得不同类型的消息,到与该类型匹配的队列中。日志发布者:package ly;import java.io.IOException;import com.rabbitmq.client.Channel;import com.rabbitmq.cl原创 2017-03-09 16:43:23 · 481 阅读 · 0 评论 -
RabbitMQ的topic类型交换机
交换机类型为topic,可以使用通配符配置消息类型,#表示多个字符串,*表示1个字符。package topic;import java.io.IOException;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.Conn原创 2017-03-09 17:57:56 · 1047 阅读 · 1 评论 -
RabbitMQ 远程过程调用RPC
所谓RPC,就是应用程序提供参数,远程调用另一个应用程序的算法,得到响应结果返回原程序;使用RabbitMQ可以实现RPC远程过程调用;客户端程序,通过消息队列给服务端程序发送消息,包括算法需要的参数,请求的唯一标识和回调队列。请求的唯一标识可以使得应用程序是哪次请求的响应,服务端程序,在响应消息时候,会把请求唯一标识原样返回。回调队列是服务器端程序给客户端程序响应消息的时候使用的消息原创 2017-03-10 13:35:47 · 515 阅读 · 0 评论 -
RabbitMQ与Spring整合之消息生产方
RabbitMQ与Spring整合之消息生产方原创 2017-05-27 14:40:58 · 770 阅读 · 0 评论 -
RabbitMQ与Spring整合之消息消费方
RabbitMQ与Spring整合之消息消费方原创 2017-05-27 15:03:15 · 2143 阅读 · 0 评论 -
RabbitMQ的简单认识
轮询与订阅的解释:轮询:是队列与消费者的关系,一个队列对应多个消费者,此时为轮询。订阅:是交换机与队列得关系,一个交换机(fanout类型)绑定多个队列,一个队列一个消费者,此时为订阅。 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无...原创 2017-05-17 15:06:21 · 307 阅读 · 0 评论 -
RabbitMQ 消息确认以及消息消费方处理消息时候抛出了异常以
本篇的代码使用的前面两篇文章《RabbitMQ与Spring整合之消息生产方》和《RabbitMQ与Spring整合之消息消费方》的代码,这两篇文件里配置文件的名称不正确,不可直接运行。在服务消费者rabbitmq.xml 做修改: <!-- queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象 --> <rabbit:l...原创 2018-06-01 20:43:59 · 20071 阅读 · 1 评论 -
spring-boot + rabbitmq消息手动确认模式的几点说明(重试机制)
前提:使用rabbitmq的手动确认消息的模式消息手动确认模式的几点说明 监听的方法内部必须使用channel进行消息确认,包括消费成功或消费失败 如果不手动确认,也不抛出异常,消息不会自动重新推送(包括其他消费者),因为对于rabbitmq来说始终没有接收到消息消费是否成功的确认,并且Channel是在消费端有缓存的,没有断开连接 如果rabbitmq断开,连接...转载 2019-02-21 14:54:20 · 7984 阅读 · 0 评论 -
RabbitMQ 简单Hello Word
依赖包:<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>3.2.2</version></dependency> 消息发送类: p原创 2017-03-08 14:12:49 · 325 阅读 · 0 评论 -
RabbitMQ 公平分发消息
默认情况下,消息队列不管消费者是否处理完毕消息,都会继续发送下一条消息,有一种机制可以避免这种情况,这种机制使得,使得每个消费者发送确认信号前,消息队列不会发送消息,也就是一个消费者发送确认前一次只处理一条消息,同时消息会在消息队列堆积。 package eve;import java.io.IOException;import java.util.concurrent.Ti...原创 2017-03-09 09:41:42 · 1671 阅读 · 0 评论 -
RabbitMQ在Windows下服务搭建
1 下载erlang: http://erlang.org/download/otp_win32_19.2.exe 进行安装,配置环境变量:ERLANG_HOME C:\Program Files\erl8.2 path下添 %ERLANG_HOME%\bin2 下载rabbitmqserver: http://www.rabbitmq.com/releases/原创 2017-03-08 13:44:28 · 2495 阅读 · 0 评论