RocketMQ概念详细之Consumer
消费者组和订阅
首先你应该关心的是不同的消费者群组可以独立的消费相同的主题,并且每个组都拥有自己的消费偏移量。
请确保相同消费者内的每个消费者订阅一样的主题。
消息监听器
串行
消费者将锁定每个消息队列以确保它被顺序消费。这会引起性能丢失,但当你关心消息顺序的实时这是很有用的。不推荐抛异常,你可以用返回ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT 替代。
并行
正如名字所说,消息者将会并行消费消息。为了好的性能推荐使用。不推荐抛异常,你可以使用返回ConsumeConcurrentlyStatus.RECONSUME_LATER 代替。
消费状态
对于MessageListenerConcurrently,你可以返回 RECONSUME_LATER 来告诉消费者,你现在不能马上消费并且想在稍后重新消费。然后你可以继续消费其他消息。
对于MessageListenerOrderly,因为你关心顺序,你不能跳过消息,但你可以返回SUSPEND_CURRENT_QUEUE_A_MOMENT 来告诉消费者等待一会。
阻塞
不建议阻塞监听器,因为它会阻塞线程池,最后使消费进程停止。
线程数量
消费者内部使用ThreadPoolExecutor来处理消费,因此你通过设置setConsumeThreadMin 或setConsumeThreadMax 可以改变它。
从哪开始消费
当创建一个新的消费者组,需要决定它是否需要消费在broker中已经存在的历史消息。
CONSUME_FROM_LAST_OFFSET 将会忽略历史消息,消费所有的之后产生的消息。
CONSUME_FROM_FIRST_OFFSET 将会消费Broker中存在的每一个消息。
CONSUME_FROM_TIMESTAMP ,消费指定时间戳之后产生的消息。
重复
很多情况下都会引起重复,例如:
- Producer重发消息(FLUSH_SLAVE_TIMEOUT情况)
- Consumer 关闭,一些偏移量未及时更新到Broker
如果你的应用不能容忍重复的话,你可能需要做一些额外的工作来处理。例如,你可以检查DB的唯一主键。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
重磅 | 中移软件和青云QingCloud加入 OpenMessaging 开源标准社区
近日,中移(苏州)软件技术有限公司(中国移动苏州研发中心)和青云QingCloud先后宣布,正式加入Linux基金会旗下OpenMessaging开源标准社区,以充分发挥自身优势,推动开源社区发展,实现低成本甚至无成本的在不同的产品和不同的云平台之间进行消息传递的社区愿景。 全球范围内,消息领域存在两大问题:一是缺乏供应商中立的行业标准,导致各种消息中间件的高复杂性和不兼容性,相应地造成了公司的产品低效、混乱和供应商锁定等问题。二是目前已有的方案框架并不能很好地适配云架构,即非云原生架构,因此无法有效地对大数据、流计算和物联网等新兴业务需求提供技术支持。 OpenMessaging是国内首个在全球范围内发起的分布式消息领域国际标准,旨在为分布式消息分发,创建面向全球、面向云、供应商中立的开放标准,可以部署在云端、内部和混合云情景中,以
- 下一篇
精彩回顾 | 阿里云APM城市技术行·深圳站
前端业务越来越丰富,底层架构越来越复杂,计算资源越来越多元化,单一的APM产品如何支撑构建云上应用的完整监控体系,保障平台的稳定性?近期在深圳举行的阿里云APM城市技术行活动给出了答案。 近日,主题为“应用全链路性能和诊断最佳实践”的阿里云APM城市技术行深圳站的活动在空体新媒体实验室举办,集结了应用高可用服务AHAS、性能监控ARMS和性能测试PTS的阿里云全域APM解决方案集中亮相。该活动吸引了近300位开发者和用户,大家共同交流云时代应用架构下在业务的高可用、全链路监控和云压测等方面的实践和探索。 “阿里巴巴中间件”公众号后台回复“APM深圳行”,获取部分嘉宾分享PPT APM 全称是Application Performance Management, 指的是对应用程序的性能和可用性的监控管理,是近5年来伴随着云技术、微服务架构
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能