风流 少年
我走的很慢,但从不后退!Not designed!
展开
-
RabbitMQ入门教程(一):安装和常用命令
一:Mac安装Mac安装比Windows安装更加方便,也不需要再额外配置Web插件,因为在安装的时候默认已经配置好了// 在Updating Homebrew...时可能会卡一会,只需要等就行了// 在安装的过程中可能因为网络问题,可能会有部分会失败,此时只需要载次执行该命令,直到全部成功即可,注意一定要检查一下是否有部分失败,为安全起见,可以多执行几次该命令brew install rabbi原创 2017-11-19 13:12:21 · 11045 阅读 · 1 评论 -
RabbitMQ入门教程(二):简介和基本概念
一:简介RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,消息队列是一种应用系统之间的通信方法,是通过读写出入队列的消息来通信(RPC则是通过直接调用彼此来通信的)AMQP(Advanced Message Queuing Protocol)高级消息队列协议是应用层协议的一个开放标准,为原创 2017-11-19 21:59:58 · 4718 阅读 · 3 评论 -
RabbitMQ入门教程(三):Hello World
Hello World示例功能简介功能描述:生产者将消息发送到队列(队列的名字为hello)中,消费者从队列中获取消息。一:生产者首先引入RabbitMQ的Java客户端依赖<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <ver原创 2017-11-20 16:28:59 · 6113 阅读 · 4 评论 -
RabbitMQ入门教程(四):工作队列(Work Queues)
工作队列使用工作队列实现任务分发的功能,一个队列的优点就是很容易处理并行化的工作能力,但是如果我们积累了大量的工作,我们就需要更多的工作者来处理,这里就要采用分布机制了。本示例主要演示显示的功能:定义交换机多个消费者同时订阅一个队列模式采用手动应答生产者public class Publisher { @Test public void testBasicPublish()原创 2017-11-21 20:19:40 · 5143 阅读 · 5 评论 -
RabbitMQ入门教程(五):扇形交换机发布/订阅(Publish/Subscribe)
简介本节主要演示交换机的广播类型fanout,广播类型不需要routingKey,交换机会将所有的消息都发送到每个绑定的队列中去。在发布消息时可以只先指定交换机的名称,交换机的声明的代码可以放到消费者端进行声明,队列的声明也放在消费者端来声明。生产者public class Producer { @Test public void testBasicPublish() throws原创 2017-11-24 21:55:06 · 4037 阅读 · 2 评论 -
RabbitMQ入门教程(六):路由选择Routing
简介本节主要演示使用直连接类型,将多个路由键绑定到同一个队列上。也可以将同一个键绑定到多个队列上,此时满足键的队列都能收到消息生产者public class Producer { @Test public void testBasicPublish() throws IOException, TimeoutException { ConnectionFactory f原创 2017-11-24 23:16:57 · 2686 阅读 · 3 评论 -
RabbitMQ入门教程(七):主题交换机Topics
简介本节主要演示交换机的另一种类型:主题类型topic,直连接类型direct必须是生产者发布消息指定的routingKey和消费者在队列绑定时指定的routingKey完全相等时才能匹配到队列上,与direct不同,topic可以进行模糊匹配,可以使用星号*和井号#这两个通配符来进行模糊匹配,其中星号可以代替一个单词;主题类型的转发器的消息不能随意的设置选择键(routing_key),必须是由点原创 2017-11-25 12:22:21 · 3310 阅读 · 0 评论 -
RabbitMQ入门教程(八):远程过程调用RPC
简介远程过程调用(RPC): 客户端发送一个请求到远程服务器上,远程服务器接收请求并处理结果,将结果响应给客户端,这个过程被称为远程过程调用。RPC涉及到的基本知识:关于队列:整个过程会设计到两个队列一个是专门保存请求的队列,一般名字被称为rpc_queue,另一个队列被称为响应队列,专门用于保存服务器处理的响应结果,这个队列的名字是随机生成的字符串。关于消息的基本属性BasicProperti原创 2017-11-25 21:34:12 · 2347 阅读 · 5 评论 -
RabbitMQ入门教程(九):首部交换机Headers
简介首部交换机和扇形交换机都不需要路由键routingKey,交换机时通过Headers头部来将消息映射到队列的,有点像HTTP的Headers,Hash结构中要求携带一个键“x-match”,这个键的Value可以是any或者all,这代表消息携带的Hash是需要全部匹配(all),还是仅匹配一个键(any)就可以了。相比直连交换机,首部交换机的优势是匹配的规则不被限定为字符串(string)而是原创 2017-11-26 19:30:34 · 6412 阅读 · 1 评论 -
RabbitMQ入门教程(十):队列声明queueDeclare
简介本节主要讨论队列声明的各个参数queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments);queue: 队列名称durable: 是否持久化, 队列的声明默认是存放到内存中的,如果rabbitmq重启会丢失,如果想重启之后还存原创 2017-11-29 22:07:05 · 47403 阅读 · 13 评论 -
RabbitMQ入门教程(十一):消息属性Properties
简介发送消息可以为消息指定一些参数Delivery mode: 是否持久化,1 - Non-persistent,2 - PersistentHeaders:Headers can have any name. Only long string headers can be set here. Properties: You can set other message properties h原创 2017-12-02 21:22:10 · 10200 阅读 · 1 评论 -
RabbitMQ入门教程(十二):消息确认Ack
一:消费者确认消费者确认或者说消费者应答指的是RabbitMQ需要确认消息到底有没有被收到 - 自动应答boolean autoAck = true;channel.basicConsume(QUEUE_NAME, autoAck, consumer);在订阅消息的时候可以指定应答模式,当自动应答等于true的时候,表示当消费者一收到消息就表示消费者收到了消息,消费者收到了消息就会立即从队列中删原创 2017-12-03 12:45:37 · 81146 阅读 · 18 评论 -
RabbitMQ入门教程(十三):虚拟主机vhost与权限管理
虚拟主机vhost每一个RabbitMQ服务器都能创建虚拟消息服务器,我们称之为虚拟主机。每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的交换机、队列、绑定等,拥有自己的权限机制。vhost之于Rabbit就像虚拟机之于物理机一样。他们通过在各个实例间提供逻辑上分离,允许为不同的应用程序安全保密的运行数据,这很有,它既能将同一个Rabbit的众多客户区分开来,又可以避免队列原创 2017-12-03 17:42:14 · 13576 阅读 · 0 评论 -
RabbitMQ入门教程(十四):RabbitMQ单机集群搭建
集群简介理解集群先理解一下元数据队列元数据:队列的名称和声明队列时设置的属性(是否持久化、是否自动删除、队列所属的节点)交换机元数据:交换机的名称、类型、属性(是否持久化等)绑定元数据:一张简单的表格展示了如何将消息路由到队列。包含的列有 交换机名称、交换机类型、路由键、队列名称等vhost元数据:为vhost内队列、交换机和绑定提供命名空间和安全属性一个队列的完整内容包括队列的元数据和队原创 2017-12-05 18:54:08 · 2734 阅读 · 2 评论 -
RabbitMQ入门教程(十五):普通集群和镜像集群
普通集群推荐一篇优秀的文章: RabbitMQ3.6.3集群搭建+HAProxy1.6做负载均衡: https://www.cnblogs.com/lion.net/p/5725474.html镜像集群镜像集群的特点:所有节点的消息都会进行同步。RabbitMQ是没有中心的。Rabbit镜像功能,需要基于rabbitmq策略来实现,政策是用来控制和修改群集范围的某个vhost队列行为和Exch原创 2017-12-07 13:31:31 · 6919 阅读 · 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/2001/XMLSchema原创 2017-12-14 18:06:21 · 2478 阅读 · 0 评论 -
RabbitMQ入门教程(十七):消息队列的应用场景和常见的消息队列之间的比较
这是网上的一篇教程写的很好,不知原作者是谁,没法注明出处,我看的时候也是别人转载的,这里就注明一下那篇转载的地址:http://blog.csdn.net/cws1214/article/details/52922267消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ转载 2017-12-18 21:14:42 · 5480 阅读 · 1 评论