
消息中间件
yinni11
这个作者很懒,什么都没留下…
展开
-
RabbitMQ消息队列
RabbitMQ消息队列之二:消费者和生产者在使用RabbitMQ之前,需要了解RabbitMQ的工作原理。RabbitMQ的工作原理RabbitMQ是消息代理。从本质上说,它接受来自生产者的信息,并将它们传递给消费者。在两者之间,它可以根据你给它的路由,缓冲规则进行传递消息。示例图RabbitMQ的术语解释生产者:生产消息,发送消息。类似工厂。 消费者:接受消息,使用消息。类似顾客。 队列:存储...转载 2018-04-17 20:56:49 · 159 阅读 · 0 评论 -
RocketMQ之消息过滤
消息过滤说到消息过滤,就不得不说到 tag。没错,就是我们之前在专业术语中提到过的 tag。也称为消息标签,用来标记 Topic 下的不同用途的消息。在 RocketMQ 中消费者是可以按照 Tag 对消息进行过滤。举个电商交易场景的例子,用户下完订单之后,在后台会产生一系列的消息,比如说订单消息、支付消息和物流消息。假设这些消息都发送到 Topic 为 Trade 中,同时用 tag...转载 2018-07-31 22:38:11 · 4482 阅读 · 0 评论 -
RocketMQ 实战之快速入门
最近 RocketMQ 刚刚上生产环境,闲暇之时在这里做一些分享,主要目的是让初学者能快速上手RocketMQ。RocketMQ 是什么Github 上关于 RocketMQ 的介绍:RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性:支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递...转载 2018-08-01 08:01:43 · 157 阅读 · 0 评论 -
RocketMQ之消息重试
消息重试首先明确之前说过的,消息重试只针对集群消费模式,广播消费没有消息重试的特性,消费失败之后,只会继续消费下一条消息。这也是为什么我们一再强调,推荐大家使用集群消费模式,其消息重试的特性能给开发者带来极大的方便。那么什么是消息重试呢?简单来说,就是当消费者消费消息失败后,broker 会重新投递该消息,直到消费成功。在 RocketMQ 中,当消费者使用集群消费模式时,消费者接收到...转载 2018-08-01 08:03:25 · 6303 阅读 · 0 评论 -
安装rocketmq-console
一、alibaba版本使用rocketmq命令查看集群状态,查看topic信息时比较麻烦,而且不直观,这个时候可以使用一些web页面来管理rocketmq。以前曾使用过一个老版本的工具,适用于alibaba版本(贡献至apache之前的版本),这里只共享一个安装包的百度网盘连接:https://pan.baidu.com/s/1mhM0cDM使用方法也比较简单:1、在linux...转载 2018-08-03 10:58:08 · 606 阅读 · 0 评论 -
RocketMQ中的生产者和消费者的流转过程
一:RocketMQ中RemotingRocketMQ消息队列的整体部署架构如下图所示:RocketMQ集群的一部分通信:(1)Broker启动后需要完成一次将自己注册至NameServer的操作;随后每隔30s时间定期向NameServer上报Topic路由信息;(2)消息生产者Producer作为客户端发送消息时候,需要根据Msg的Topic从本地缓存的TopicPublis...转载 2018-08-13 23:00:58 · 2806 阅读 · 0 评论 -
RocketMQ(四)——消息重试(producer重试和Consumer的重试)
一、 Producer端重试 二、 Consumer端重试 1. Exception 2. Timeout 总结 对于MQ,可能存在各种异常情况,导致消息无法最终被Consumer消费掉,因此就有了消息失败重试机制。很显示,消息重试分为2种:Producer端重试和Consumer端重试。一、 Producer端重试生产者端的消息失败,也就是Producer往MQ上发消...转载 2018-08-22 10:02:26 · 2826 阅读 · 0 评论 -
RocketMQ4.0源码分析之-路由管理
RocketMQ4.0源码分析之-路由管理一 前言 路由管理功能是RocketMQ的核心功能之一,涵盖了订阅管理,连接管理,负载均衡管理等一系列功能,代码布在NameServer,Broker,Producer和Consumer等各组件中。 RocketMQ有一个特色功能:支持灵活的集群工作方式。Broker,Producer和Consumer都能够在运行时动态扩容或缩容,这都要依...转载 2018-08-17 17:23:48 · 222 阅读 · 0 评论 -
MQ中的使用场景
什么是削峰限流1.使用场景 秒杀活动,一般会因为流量过大,导致应用挂掉,为了解决这个问题,一般在应用前端加入消息队列。作用:1.可以控制活动人数,超过此一定法治的订单直接丢弃 2.可以缓解短时间的高流量压垮应用(应用程序按自己的最大处理能力获取订单)。什么是应用解耦1.使用场景 双11的购物节,用户下单后,订单系统需要通知库存系统,传统...转载 2018-09-03 20:25:27 · 674 阅读 · 0 评论 -
Sharding-JDBC的动态分表
如果一张表想实现动态分表,如每个月自动分出新的表,或者超过1万条记录自动分出新表?请问这种情况下Sharding-JDBC如何实现?自己维护Map<String, DataSource>和List<String> actualTables,每次在这里添加新的表就行吗?0超过1万记录自动分出新表这个sharding-jdbc做不了。按月动态分表可以。预先建好每个...转载 2018-09-14 15:39:20 · 1557 阅读 · 0 评论 -
kafka----用@KafkaListener批量接收消息
之前介绍了如何在SpringBoot中集成Kafka,但是默认情况下,@KafkaListener都是一条一条消费,如果想要一次消费一个批量的话,我们都知道,在kafka原生的API可以通过poll(num)来获取一次获取num条消息:那么使用在Springboot中使用@KafkaListener能否实现批量监听呢?看了spring-kafka的官方文档介绍,可以知道自1.1版本之后,@K...转载 2018-12-20 17:54:02 · 6153 阅读 · 0 评论 -
kafka --- springboot kafka集成(实现producer和consumer) 本文介绍如何在springboot项目中集成kafka收发message。
1、先解决依赖springboot相关的依赖我们就不提了,和kafka相关的只依赖一个spring-kafka集成包<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</ar...转载 2018-12-20 18:03:17 · 231 阅读 · 0 评论 -
阿里RocketMQ如何解决消息的顺序和重复两大硬伤?
分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ有哪些关键特性?其实现原理是怎样的?关键特性及其实现原理一、顺序消息消息有序指的是可以按照消...转载 2018-07-21 22:21:31 · 6237 阅读 · 0 评论 -
rocketmq-producer原理解析
Producer随机与一个NameServer建立长连接,从NameServer获取topic的最新队列情况。Producer会向提供topic服务的master建立长连接,且定时向master发送心跳。 发送消息demo:// 构造ProducerDefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName")...转载 2018-07-25 10:40:22 · 336 阅读 · 0 评论 -
rocketmq-producer之发送事物消息
rocketmq支持普通消息、顺序消息,此外,还支持事物消息。实现方式是将一个大事务拆分成多个小事物异步执行,事物消息在其中起着桥梁作用。rocketmq在发送事物消息时,会先发送一个prepared消息,返回消息所在地址。然后再执行本地事物,根据事物执行结果去更新prepared消息状态。消息接收者只能消费消息集群中消息状态为已提交的消息。事物消息demo:Transactio...转载 2018-07-25 10:36:58 · 375 阅读 · 0 评论 -
Kafka、RabbitMQ、RocketMQ消息中间件的对比
Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能-转自阿里中间件引言分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。那么,消息中间件性能究竟哪家强?带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、Rabbi...转载 2018-04-17 21:06:31 · 244 阅读 · 0 评论 -
RocketMQ 实战之快速入门
最近 RocketMQ 刚刚上生产环境,闲暇之时在这里做一些分享,主要目的是让初学者能快速上手RocketMQ。RocketMQ 是什么Github 上关于 RocketMQ 的介绍:RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性:支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型在一个队列中可靠的先进先出(FIFO)和严格的顺序传递支持拉(pull)和...转载 2018-05-31 23:24:13 · 779 阅读 · 0 评论 -
3分钟快速入门RocketMQ(上)
简介用官方的话来说,RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件,具有以下特性(ps:对于这些特性描述,大家简单过一眼就即可,深入学习之后自然就明白了):支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型在一个队列中可靠的先进先出(FIFO)和严格的顺序传递支持拉(pull)和推(push)两种消息模式单一队列百万消息的堆积能力支持多种消息协议,如 JMS、MQTT...转载 2018-05-31 23:26:38 · 208 阅读 · 0 评论 -
3分钟快速入门RocketMQ(下)
RocketMQ 集群部署模式单 master 模式也就是只有一个 master 节点,称不上是集群,一旦这个 master 节点宕机,那么整个服务就不可用。优点:部署简单。缺点:存在单点故障。注意:该模式一般只用来个人学习,或者作为开发环境使用,生产环境不推荐使用该模式。多 master 模式多个 master 节点组成集群,单个 master 节点宕机或者重启对应用来说没有影响。优点:所有模式...转载 2018-05-31 23:29:17 · 153 阅读 · 0 评论 -
RocketMQ学习(五):Pull和Push
源代码版本是3.2.6。在rocketmq里,consumer被分为2类:MQPullConsumer和MQPushConsumer,其实本质都是拉模式(pull),即consumer轮询从broker拉取消息。区别是:push方式里,consumer把轮询过程封装了,并注册MessageListener监听器,取到消息后,唤醒MessageListener的consumeMessage()来消费...转载 2018-05-31 23:33:36 · 590 阅读 · 0 评论 -
RocketMQ最佳实践(四)可视化管理控制台rocketmq-console-ng
RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫“rocketmq-console”,这个便是管理控制台项目了。先将incubator-rocketmq-externals拉到本地,因为我们需要自己对rocketmq-console进行编译打包运行。通过命令行进入到rocketmq-console子目录,通过maven对其进...转载 2018-05-31 23:53:28 · 789 阅读 · 0 评论 -
RocketMQ消息堆积
概述 这篇文章的目的主要是为了讲清楚rocketMq消息堆积的概念,我印象中的rocketMq的消息堆积应该分为两层,一层是broker中实际写入消息量和consumeQueue已经消费位移的偏差,另外一层consumer端本身已经拉取消息的堆积,而今天要讲的正是后者。 这个问题的起源是当时有个其他公司的同事遇到consumer端不停的gc,然后开始谈论起这个话题,然后我就按照我的理解...转载 2018-05-31 23:58:47 · 12711 阅读 · 0 评论 -
rocketMq - tag不一致造成的假象
概述 这篇文章是以同事在实际工作中遇到的问题作为分析的切入点,加深自己对mq的掌握,践行“干中学”的团队理念。 当自己差不多把基本概念都掌握的差不多的时候,必须需要实际的案例或者实践来提深自己的深度,这个时候just do it 变得很重要,所以我喜欢不停的被人挑战,截止目前帮人解答的问题包括:client端消息堆积问题、批量消息拉取问题中遇到的神奇的数字32、以及本篇的tag...转载 2018-06-01 00:03:08 · 6032 阅读 · 2 评论 -
Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能
引言分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。那么,消息中间件性能究竟哪家强?带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。Kafka是LinkedIn开源的分布式发布-订阅消息系统...转载 2018-07-04 19:24:40 · 152 阅读 · 0 评论 -
MQ选型对比RabbitMQ RocketMQ ActiveMQ
几种MQ产品说明: ZeroMQ : 扩展性好,开发比较灵活,采用C语言实现,实际上他只是一个socket库的重新封装,如果我们做为消息队列使用,需要开发大量的代码 RabbitMQ :结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发和维护 ActiveMQ: 历史悠久的开源项目,已经在很多产品中得到应用,实现了JMS1.1规范,可以和spring-jms轻...转载 2018-07-04 19:27:46 · 871 阅读 · 0 评论 -
消息中间件kafka与activemq、rabbitmq、zeromq、rocketmq的比较
消息队列(Message Queue,简称 MQ)是阿里巴巴集团中间件技术部自主研发的专业消息中间件。分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:常用消息队列有:kafka、activemq、rabbitmq等。 一、kafka:1、不完全符合jms规范,注重吞吐量,类似udp 和 tcp;2、一般做大数据吞...转载 2018-07-04 19:40:57 · 3925 阅读 · 0 评论 -
MQTT和MQ的区别是什么之kafka和mqtt的区别是什么?
两者虽然都是从传统的Pub/Sub消息系统演化出来的,但是进化的方向不一样,以下是几个比较突出的点:Kafka是为了数据集成的场景,与以往Pub/Sub消息总线不一样,通过分布式架构提供了海量消息处理、高容错的方式存储海量数据流、保证数据流的顺序等特性。可以参考云上的卡夫卡 - 数据工会。 MQTT是为了物联网场景而优化,不但提供多个QoS选项(exact once、at least onc...转载 2018-09-14 09:14:30 · 12011 阅读 · 0 评论