随笔分类 - 消息机制
rabbitmq,rocketmq
摘要:我们都知道,消息从生产端到消费端消费要经过3个步骤: 生产端发送消息到RabbitMQ; RabbitMQ发送消息到消费端; 消费端消费这条消息; 这3个步骤中的每一步都有可能导致消息丢失,消息丢失不可怕,可怕的是丢失了我们还不知道,所以要有一些措施来保证系统的可靠性。 这里的可靠并不是一定就100
阅读全文
摘要:rabbitmq中队列的完整性只会保存在创建它的那个节点上,其他节点只会保存该队列事元数据和一个指向该队列的指针而已,不会保存队列的内容。 队列完整性包括队列的元数据和队列的内容。rabbitmq有四种类型的元数据,rabbitmq集群始终会同步这4种元数据:队列元数据,交换机元数据,绑定元数据,v
阅读全文
摘要:1、首先是rabbitmq的配置文件: 2、发送方: 3、消费方: 4、确认后回调方: 5、失败后return回调: 6、测试类: 7、测试结果: 8、总结如下: 如果消息没有到exchange,则confirm回调,ack=false 如果消息到达exchange,则confirm回调,ack=t
阅读全文
摘要:问题描述:FatalListenerStartupException: Authentication failure 问题原因:连接RabbitMQ服务器异常,要么是用户名和密码错误,要么是使用的用户名没有权限登录,比如用guest用户 问题解决: 1、使用正确的用户名和密码 2、重新创建一个用户名
阅读全文
摘要:一、erlang下载安装 1、下载 下载erlang,原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的,下载地址:http://www.erlang.org/downloads,双击.exe文件进行安装就好。 百度网盘下载: 链接:https://pan.baidu.com/s/
阅读全文
摘要:1,首先引入配置文件org.springframework.amqp,如下: 2,准备工作:安装好rabbitmq,并在项目中增加配置文件 rabbit.properties 内容如下: 3,rabbitmq属性介绍: 概念解释: 消息队列的使用过程大概如下:消息接收 消息发布 AMQP 里主要要说
阅读全文
摘要:一、简介 消息中间件(Message Queue Middleware,简称MQ)又称为消息队列,是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的构建。是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性
阅读全文
摘要:引言 前几期的评测中,我们对比了Kafka和RocketMQ的吞吐量和稳定性,本期我们要引入一个新的评测标准——软件可靠性。 何为“可靠性”? 先看下面这种情况:有A,B两辆越野汽车,在城市的周边地区均能很好应对泥泞的路况。当一同开去穿越西藏,A车会因为西藏本地的汽油不达标,导致油路受阻无法点火,而
阅读全文
摘要:引言 上期我们对比了RocketMQ和Kafka在多Topic场景下,收发消息的对比测试,RocketMQ表现稳定,而Kafka的TPS在64个Topic时可以保持13万,到了128个Topic就跌至0.85万,导致无法完成测试。我们不禁要问: 为什么看不到Kafka性能暴跌的趋势呢? 今天的测试,
阅读全文
摘要:引言 上一期我们对比了三类消息产品(Kafka、RabbitMQ、RocketMQ)单纯发送小消息的性能,受到了程序猿们的广泛关注,其中大家对这种单纯的发送场景感到并不过瘾,因为没有任何一个网站的业务只有发送消息。本期,我们就来模拟一个真实的场景: Topic为何物 Topic是消息中间件里一个重要
阅读全文
摘要:引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、R
阅读全文
摘要:淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘宝中间件团队在对Kafka做过充分Review之后,Kafka无限消息堆
阅读全文
摘要:交换器(Exchange) 交换器就像路由器,我们先是把消息发到交换器,然后交换器再根据绑定键(binding key)和生产者发送消息时的路由键routingKey, 按照交换类型Exchange Type(fanout,direct,topic)把消息投递到对应的队列。(明白这个概念很重要,后面
阅读全文
摘要:一:消息类型 Map String(含json字符串类型) 二:处理方法 2.1 Map消息 如果发送的消息类型是map类型,可以通过SerializationUtils.deserialize方法将消息转换成map类型。 2.2 字符串类型(含json格式) 通过String类的构造函数接收byt
阅读全文
摘要:一: 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序或者模块对模块的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。 常见的消息队列有RabbitMQ和kafka。下面详细介绍一下Rabb
阅读全文
摘要:一:确认种类 RabbitMQ的消息确认有两种。 一种是消息发送确认。这种是用来确认生产者将消息发送给交换器,交换器传递给队列的过程中,消息是否成功投递。发送确认分为两步,一是确认是否到达交换器,二是确认是否到达队列。 第二种是消费接收确认。这种是确认消费者是否成功消费了队列中的消息。 二:消息发送
阅读全文
摘要:作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsRabbitMQ、ActiveMQ和ZeroMQ都是极好的消息中间件,但是我们在项目中该选择哪个更适合呢?很多开发者面临这个烦恼。下面我会对这三个消息中间件做一个比较,看了后你们就心中有数了。RabbitMQ
阅读全文