消息队列mq
消息队列
zhangSir134
不断思考,不断总结
展开
-
RabbitMQ和Kafka选型用哪个
作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们会说原创 2020-07-18 15:15:14 · 7918 阅读 · 0 评论 -
消息队列(4):Kafka
介绍kafka是一个支持分布式的消息系统,基于发布/订阅模式。kafka由LinkedIn公司开发,2010年成为Apache顶级项目。基本概念1、Brokerkafka集群中的每台机器,都叫一个broker.2、Topic(主题)一个topic代表着一类消息,不同类型的消息,就用不同的topic区分。3、Partition(分区)一个Partition就是一个队列。一个topi...原创 2019-12-13 00:30:20 · 7335 阅读 · 0 评论 -
rocketmq批量消费
rocketmq默认就是可以批量消费的,但需要设置多个参数一起配合。我们只需要知道他是怎么消费的,就可以很精准的设置他的批量消费参数。我们看看DefaultMQPushConsumer源码中的这几个参数: /** * 消费消息线程,最小数目 */ private int consumeThreadMin = 20; /** * 消费消息线程...原创 2019-12-02 19:31:28 · 17440 阅读 · 2 评论 -
[错误记录] --- rocketmq批量消费设置参数的问题
rocketmq想支持批量消费,于是便设置以下参数:consumer.setConsumeMessageBatchMaxSize(1000);这样是正确的,但由于业务要求,还想再设置大点,于是设置成这样:consumer.setConsumeMessageBatchMaxSize(10000);报错了。直接不消费了。错误原因写的很明显,这个consumeMessageBatchMax...原创 2019-11-27 18:52:26 · 9783 阅读 · 0 评论 -
消息队列(5):RocketMQ
介绍RocketMQ是一款成熟的分布式消息中间件。由阿里2012年开源,2017年成为Apache顶级项目。源码是java写的。高性能,低延迟,高可靠。历经多次双十一大促,整体很稳定。核心四大组件NameService,Broker,Producer,Consumer每个组件可以部署成集群模式水平扩展。Producer负责发消息,有3种发送方式1.同步发送:重要场景,发一条要等...原创 2019-11-19 23:55:14 · 7378 阅读 · 0 评论 -
消息队列(3):RabbitMQ
RabbitMQ,基于AMQP协议实现。特点:消息可靠:持久化消息,传输确认,发布确认。路由灵活:使用AMQP的Exchange来路由消息,包括RabbitMQ内置的Exchange,还有复杂的路由也可以使用多个Exchange绑定,定制实现。支持集群:高可用:多协议:RabbitMQ除了支持AMQP协议,还可以通过插件的方式支持其他协议,比如STOMP,MQTT。支持多语言客户端:...原创 2019-07-05 00:36:45 · 7723 阅读 · 0 评论 -
消息队列(2):常见的消息队列协议
协议很常见,只要是通信,就会用到协议,就像我们说话的语言一样,不同的语言连通着不同的人群。所以说,消息队列也是一样,想要互相通信,就要使用同一种协议。每个协议下的消息队列,都有着不同的角色定义。简单说下常见的消息队列协议:1.AMQP(Advance Message Queuing Protocol)Message(消息):消息服务器处理消息的原子单元,包括一个内容头,一组属性和一个内容...原创 2019-07-04 01:11:40 · 9707 阅读 · 0 评论 -
消息队列(1):一个消息队列应该有的特点
消息队列常见场景异步解耦削峰填谷日志收集分析代替事务,最终一致消息队列特点消息队列之所以能异步,就是因为消息并不是实时处理的,那肯定会有一个存储消息,处理消息的地方,才能达到异步效果。所以最简单的消息队列由以下三块组成:消息生产者,消息处理中心,消息消费者。1.消息堆积有处理策略当生产者生产消息的速度大于消费者消费消息的速度时,消息就会在消息中心产生堆积。所以消息队列必须能够...原创 2019-07-03 23:30:31 · 8819 阅读 · 0 评论 -
spring boot 整合 谷歌guava的EventBus 实现单机版的消息发布订阅
spring boot 整合 谷歌guava的EventBus 实现单机版的消息发布订阅大型分布式系统,直接用mq解耦,那么单机系统怎么办,可以考虑用EventBus用EventBus的好处也是异步解耦,和mq的类似,可以勉强认为是单机版的mq先解释,后附源码(jdk1.8)EventBus 处理的事情类似观察者模式,基于事件驱动,观察者们监听自己感兴趣的特定事件,进行相应的处理。流程是...原创 2019-09-11 11:58:43 · 11125 阅读 · 0 评论