RabbitMQ学习
whnrll
只要你现在努力,就为时不晚!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RabbitMQ入门教程(五):扇形交换机发布/订阅(Publish/Subscribe)
简介本节主要演示交换机的广播类型fanout,广播类型不需要routingKey,交换机会将所有的消息都发送到每个绑定的队列中去。在发布消息时可以只先指定交换机的名称,交换机的声明的代码可以放到消费者端进行声明,队列的声明也放在消费者端来声明。发布订阅类似观察者模式设计模式,一般适用于当接收到某条消息时同时做多种类似的任务的处理,如一个发短信,另一个一个发邮件;一个插入数据库,另一个保存在文...转载 2019-03-03 19:54:45 · 263 阅读 · 0 评论 -
RabbitMQ入门教程(十六):RabbitMQ与Spring集成
简介集成示例基本目录结构一:引入相关依赖引入Spring核心的依赖和spring-rabbit依赖,注意spring-rabbit依赖不要使用最新的版本,这里使用的1.7.5.RELEASE,使用2.0.0的会报错<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org...转载 2019-03-03 20:25:18 · 215 阅读 · 0 评论 -
RabbitMQ入门教程(十五):普通集群和镜像集群
普通集群推荐一篇优秀的文章:RabbitMQ3.6.3集群搭建+HAProxy1.6做负载均衡:https://www.cnblogs.com/lion.net/p/5725474.html镜像集群镜像集群的特点:所有节点的消息都会进行同步。RabbitMQ是没有中心的。Rabbit镜像功能,需要基于rabbitmq策略来实现,政策是用来控制和修改群集范围的某个vhost...转载 2019-03-03 20:01:45 · 447 阅读 · 0 评论 -
RabbitMQ入门教程(二):简介和基本概念
一:简介RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,消息队列是一种应用系统之间的通信方法,是通过读写出入队列的消息来通信(RPC则是通过直接调用彼此来通信的)AMQP(Advanced Message Queuing Protocol)高级消息队列协议是应用层协议的一个开...转载 2019-03-03 20:00:40 · 189 阅读 · 0 评论 -
RabbitMQ入门教程(十四):RabbitMQ单机集群搭建
集群简介理解集群先理解一下元数据队列元数据:队列的名称和声明队列时设置的属性(是否持久化、是否自动删除、队列所属的节点) 交换机元数据:交换机的名称、类型、属性(是否持久化等) 绑定元数据:一张简单的表格展示了如何将消息路由到队列。包含的列有 交换机名称、交换机类型、路由键、队列名称等 vhost元数据:为vhost内队列、交换机和绑定提供命名空间和安全属性一个队列的完整内容包括队...转载 2019-03-03 19:53:23 · 276 阅读 · 0 评论 -
RabbitMQ入门教程(十三):虚拟主机vhost与权限管理
虚拟主机vhost每一个RabbitMQ服务器都能创建虚拟消息服务器,我们称之为虚拟主机。每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的交换机、队列、绑定等,拥有自己的权限机制。vhost之于Rabbit就像虚拟机之于物理机一样。他们通过在各个实例间提供逻辑上分离,允许为不同的应用程序安全保密的运行数据,这很有,它既能将同一个Rabbit的众多客户区分开来,又可以避...转载 2019-03-03 19:50:54 · 853 阅读 · 0 评论 -
RabbitMQ入门教程(十二):消息确认Ack
一:消费者确认消费者确认或者说消费者应答指的是RabbitMQ需要确认消息到底有没有被收到- 自动应答boolean autoAck = true;channel.basicConsume(QUEUE_NAME, autoAck, consumer);在订阅消息的时候可以指定应答模式,当自动应答等于true的时候,表示当消费者一收到消息就表示消费者收到了消息,消费者收到了消息就...转载 2019-03-03 19:47:05 · 1107 阅读 · 0 评论 -
RabbitMQ入门教程(十一):消息属性Properties
简介发送消息可以为消息指定一些参数Delivery mode: 是否持久化,1 - Non-persistent,2 - Persistent Headers:Headers can have any name. Only long string headers can be set here. Properties: You can set other message propert...转载 2019-03-03 19:26:19 · 773 阅读 · 0 评论 -
RabbitMQ入门教程(十):队列声明queueDeclare
简介本节主要讨论队列声明的各个参数queueDeclare(String queue, boolean durable, boolean exclusive, Map<String, Object> arguments); queue: 队列名称 durable: 是否持久化, ...转载 2019-03-03 19:25:12 · 1380 阅读 · 0 评论 -
RabbitMQ入门教程(四):工作队列(Work Queues)
- 工作队列使用工作队列实现任务分发的功能,一个队列的优点就是很容易处理并行化的工作能力,但是如果我们积累了大量的工作,我们就需要更多的工作者来处理,这里就要采用分布机制了。本示例主要演示显示的功能:定义交换机多个消费者同时订阅一个队列模式采用手动应答代码如下:import java.io.IOException;import java.util.concurrent.Timeo...转载 2019-03-03 19:55:47 · 252 阅读 · 0 评论 -
RabbitMQ中间件学习(三)--Hello World示例功能简介
Hello World示例功能简介功能描述:生产者将消息发送到队列(队列的名字为hello)中,消费者从队列中获取消息。创建maven工程,引入RabbitMQ的Java客户端依赖在测试包中写生产者,消费者方法代码示例import java.io.IOException;import java.util.Map;import java.util.concurrent.Timeou...转载 2019-03-03 19:56:18 · 265 阅读 · 0 评论 -
RabbitMQ 四大交换机详解及代码实现
1. 交换机概念在AMQP规范及RabbitMQ中,交换机(Exchange)的作用是:接受生产者应用程序发布的消息,并根据一定的规则(由交换机的类型决定)将这些消息路由(即转发)到消息队列上,它本身并不会做存储。在前面的HelloWorld的示例代码中,我们使用了是默认的交换机("")来将消息转发到队列: 1 channel.basicPublish...转载 2019-03-02 12:56:05 · 1505 阅读 · 0 评论 -
RabbitMQ入门教程(九):首部交换机Headers
简介首部交换机和扇形交换机都不需要路由键routingKey,交换机是通过Headers头部来将消息映射到队列的,有点像HTTP的Headers,Hash结构中要求携带一个键“x-match”,这个键的Value可以是any或者all,这代表消息携带的Hash是需要全部匹配(all),还是仅匹配一个键(any)就可以了。相比直连交换机,首部交换机的优势是匹配的规则不被限定为字符串(string...转载 2019-03-02 12:54:41 · 404 阅读 · 0 评论 -
RabbitMQ入门教程(八):远程过程调用RPC
简介远程过程调用(RPC): 客户端发送一个请求到远程服务器上,远程服务器接收请求并处理结果,将结果响应给客户端,这个过程被称为远程过程调用。RPC涉及到的基本知识: 关于队列:整个过程会设计到两个队列一个是专门保存请求的队列,一般名字被称为rpc_queue,另一个队列被称为响应队列,专门用于保存服务器处理的响应结果,这个队列的名字是随机生成的字符串。 关于消息的基本属性...转载 2019-03-02 11:28:24 · 740 阅读 · 5 评论 -
RabbitMQ入门教程(七):主题交换机Topics
简介本节主要演示交换机的另一种类型:主题类型topic,直连接类型direct必须是生产者发布消息指定的routingKey和消费者在队列绑定时指定的routingKey完全相等时才能匹配到队列上,与direct不同,topic可以进行模糊匹配,可以使用星号*和井号#这两个通配符来进行模糊匹配,其中星号可以代替一个单词;主题类型的转发器的消息不能随意的设置选择键(routing_key),必...转载 2019-03-03 19:55:17 · 281 阅读 · 0 评论 -
RabbitMQ入门教程(六):演示交换机的直连类型,一个交换机绑定多个路由键,一个队列绑定多个路由键
简介本节主要演示使用直连接类型,将多个路由键绑定到同一个队列上。生产者 @Test public void produce() throws IOException, TimeoutException { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost");...转载 2019-03-03 19:55:06 · 3754 阅读 · 0 评论 -
RabbitMQ入门教程(六):演示交换机使用直连类型,一个交换机绑定1个路由键,一个路由键绑定多个队列
简介本节主要演示使用直连接类型,将同一个键绑定到多个队列上(多重绑定multiple bindings),此时满足键的队列都能收到消息,不满足的直接被丢弃。生产者@Test public void produce() throws IOException, TimeoutException { ConnectionFactory factory = new Conne...转载 2019-03-03 19:54:56 · 2880 阅读 · 0 评论 -
RabbitMQ入门教程(十七):消息队列应用场景和常见消息队列的比较
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用户注...转载 2019-03-03 20:26:25 · 221 阅读 · 0 评论
分享