RabbitMQ
RabbitMQ
asadsfasfasdfas
这个作者很懒,什么都没留下…
展开
-
图库xxxa
...原创 2021-10-09 23:02:53 · 552 阅读 · 0 评论 -
17.集群
集群1.RabbitMQ节点类型1.1:磁盘节点磁盘节点将元数据(队列名字属性,交换机的类型名字属性,绑定关系,vhost)放在磁盘中磁盘节点一般用来备份数据集群中至少需要一个磁盘节点用来持久化元数据,否则全部内存节点崩溃就无从同步元数据了节点加入到集群中默认是磁盘节点(可以在加入集群的时候指定为内存节点)1.2:内存节点内存节点将元数据放在磁盘中内存节点会将磁盘节点的地址存放在磁盘(不然重启后就没有办法同步数据了)。如果是持久化的消息,会同时存放在内存和磁盘一般把应用连接到内存节原创 2021-04-15 10:55:31 · 57 阅读 · 0 评论 -
16.SpringBoot整合消费者
SpringBoot整合消费者1.基本配置1.1:引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>1.2:配置文件spring: rabbitmq: host: 192.168.1.199 port: 5原创 2021-04-15 10:09:27 · 225 阅读 · 0 评论 -
15.SpringBoot整合生产者
SpringBoot整合RabbitMQ生产者1.生产者整合RabbitMQ的基本配置1.1:引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>1.2:配置文件spring: rabbitmq: host: 192原创 2021-04-15 10:05:23 · 97 阅读 · 0 评论 -
12.消费端幂等性
消费端幂等性1.接口幂等性1.1:什么是接口的幂等性接口的幂等性::简而言之,就是对接口发起的一次调用和多次调用,所生产的结果都是一致的。某些接口具有天然的幂等性:比如长查询接口,不管是查询一次还是多次,返回的结果都是一致的1.2:若接口没有保障幂等性会出现什么问题比如订单提交的过程中,用户点了一次提交,但是由于网络等原因,导致后端处理延时,客户就连续点击了多次,在没有幂等性的条件下,那么就会造成订单的重复提交。1.3:如何解决在保存订单的时候,根据生成的系统全局唯一ID(这里订单号+原创 2021-04-15 09:52:08 · 218 阅读 · 0 评论 -
图库xxx
...原创 2021-03-14 15:40:52 · 243 阅读 · 0 评论 -
13.Java整合RabbitMQ
Java整合RabbitMQ1.基本API//创建连接工厂 ConnectionFactory connectionFactory = new ConnectionFactory(); //连接IP connectionFactory.setHost(""); //连接端口 connectionFactory.setPort(5672); //虚拟主机(默认为/) connectionFact原创 2021-04-13 11:57:46 · 871 阅读 · 0 评论 -
11.消费者
消费者1.消费者获取消息的方式拉取Get(不常用)订阅队列推送到Consume(常用的)2.消息分发策略相关多消费者订阅第一个队列,队列会以轮询的方式分发消息3.消费者的消息确认机制为了保证消息从队列可靠的到达消费者消息确认机制有两种类型:自动确认,手动确认autoAck等于true的时候RabbitMQ只要把消息发送给了消费者就删除消息,不管消费者有没有接收到autoAck等于false的时候RabbitMQ把消息发送给消费者后等待信号才删除我们大多出情况使用手动ACK而不使用原创 2021-04-13 11:56:01 · 61 阅读 · 0 评论 -
10.生产者可靠性投递
生产者可靠性投递1.什么是消息可靠性投递生产者发送消息是可能失败的也有可能被消费者消费但出现了异常等情况造成消息并没有被投递或消费,所谓的可靠性投递就是保证消息会接近百分之百的被投递和消费如果还出现没被投递和消费的情况使用人工补偿进行兜底。2.保证消息可靠性投递的两种方案消息落库,对消息状态进行打标消息的延迟投递,做二次确认,回调检查3.什么情况会导致消息重发消息落库完成进行发送消息的时候发送失败导致消息库中的消息一直是发送中状态消息发送成功后因为某种原因没有接收到回调致使消息状态一直原创 2021-04-12 14:58:56 · 74 阅读 · 0 评论 -
9.生产者权衡
生产者权衡1.什么叫做生产者权衡生产者在向消息队列投递消息可能会产生各种问题这些问题有很多解决方案,对于生产者来说需要权衡这些方案,权衡这些方案所要关注的方面只有两方面:性能,可靠性。2.对于生产者来说有哪些方案失败通知——常用发送方确认——常用事务——不常用3.发送方确认为什么需要发送方确认消息是不能百分百保证投递到消息队列上(Broker)的,发送方确认能够保证消息是否成功投递到Broker上这个信息被生产者感知到。发送方确认的三种模式单条消息阻塞确认多条消息批量阻塞确认原创 2021-04-12 14:55:58 · 70 阅读 · 0 评论 -
8.消息
消息1.消息的组成部分消息体消息属性2.消息属性有哪些属性名用处content-type消息体的MIME类型,如application/jsoncontent-encoding消息的编码类型,如是否压缩message-id消息的唯一性标识,由应用进行设置correlation-id一般用做关联消息的message-id,常用于消息的响应timestamp消息的创建时刻,整形,精确到秒expiration消息的过期时刻,字符串,但是呈原创 2021-04-12 14:54:48 · 84 阅读 · 0 评论 -
7.队列
队列1.队列的基本知识队列就是存储消息的地方队列默认是非持久化的2.创建队列时候的参数队列名字队列名字是否持久化队列默认是非持久化的可以指定为持久化是否是排他队列如果不是独占的,可以使用两个消费者都访问同一个队列,如果是独占的,会对当前队列加锁,其他通道channel是不能访问的,如果强制访问会报异常,一般等于true的话用于一个队列只能有一个消费者来消费的场景队列是否自动删除当最后一个消费者断开连接之后队列是否自动被删除扩展参数参数名目的x-dea原创 2021-04-12 14:52:24 · 103 阅读 · 0 评论 -
6.交换机
交换机1.交换机的类型Direct类型当消息的路由键与该类型交换机的绑定一致时发送到相应队列中Topic类型当消息的路由键与绑定关系模糊匹配成功则发送到相应队列可以使用通配符进行模糊匹配,#匹配一个或多个词,*匹配一个词Fanout类型与路由键和绑定无关了如果消息发送到Fanout类型的Exchange上,那么这种类型的交换机会把消息发送给所有队列。2.交换机创建时候的参数交换机的名字没啥好说的名字而已交换机的类型上面说的类型的其中一种即可交换机是否持原创 2021-04-12 14:51:00 · 79 阅读 · 0 评论 -
5.RabbitMQ的Cli工具
RabbitMQ的Cli工具1.有哪些Cli工具rabbitmqctl——负责服务管理和一般操作任务的,自带的rabbitmq-diagnostics——健康检查,诊断,自带的rabbitmq-plugins——插件管理,自带的rabbitmq-queues——队列管理,自带的rabbitmq-upgrade——用于升级,自带的rabbitmqadmin——通过HTTP API操控RabbitMQ(需要从github上下载)rabbitmq-collect-env——它收集相关的集群和环境原创 2021-04-12 14:48:05 · 408 阅读 · 0 评论 -
4.rabbitmq.conf文件详解
rabbitmq.conf文件详解1.配置文件位置/etc/rabbitmq2.重要配置详解2.1:网络部分配置# 监听端口listeners.tcp.default=5672# 监听特定接口(本地的) ipv4格式listeners.tcp.local=127.0.0.1:5672# 监听特定接口(本地的) ipv6格式listeners.tcp.local_v6=::1:5672listeners.tcp.other_port=5673# 不清楚listeners.tcp.ot原创 2021-04-12 14:47:30 · 1807 阅读 · 0 评论 -
3.使用Docker安装RabbitMQ
Docker安装RabbitMQ1.注意问题默认的账号和密码是guest管理控制台端口是15672程序访问端口是5672如需在本地机器中访问,需要在虚拟机中配置端口转发在本地浏览器中检查能否访问管理控制台并运行代码测试注意:系统缺省的guest用户是不能进行远程登录的,除非另行配置相关参数2.Docker Compose安装单节点RabbitMQ2.1:准备工作安装Docker添加镜像加速安装Docker Compose2.2:部署目录结构docker rabbitm原创 2021-04-12 14:46:53 · 394 阅读 · 0 评论 -
2.RabbitMQ介绍
RabbitMQ介绍1.AMQP1.1:AMQP协议简单介绍全称是:Advanced Message Queuing Protocol(高级消息队列协议)由摩根大通集团联合其他公司共同设计是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制Erlang语言中的AMQP实现有RabbitMQ1.2:AMQP协议模型2.RabbtiMQ中各原创 2021-04-12 14:46:02 · 89 阅读 · 0 评论 -
1.消息队列介绍
消息队列介绍什么是消息队列并没有标准的定义一般认为,消息中间件属于分布式系统中一个子系统关注与数据的发送与接收利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成主要概念:高效,可靠,异步消息队列能做什么服务解耦削峰填谷异步化调用主流的消息队列RabbitMQActiveMQRocketMQKafKa主流消息队列的对比消息队列的选型角度业内常用的消息队列有那些每一种MQ各自的表现如何这些MQ在同等机器条件下,能抗多少QPS发送消息和消原创 2021-04-12 14:45:13 · 63 阅读 · 0 评论