领取20万字《Kafka运维与实战宝典》PDF文档
领取20万字《Kafka运维与实战宝典》PDF文档
【福利】速进高质量滴滴技术交流群
多位技术专家在线答疑,有问必答!
【kafka运维】Kafka全网最全最详细运维手册!!!
Kafka全网最全最详细运维命令合集!你的得力助手
RocketMq消息轨迹的使用和原理解析
前言首先, 想要全面的了解消息轨迹, 我们可以提出以下问题, 然后根据以下问题逐步的去从源码中寻找答案!
什么是消息轨迹?消息轨迹可以做什么?
如何开启消息轨迹以及如何使用?
消息轨迹的实现原理是什么?
使用消息轨迹的注意点和建议?
什么是消息轨迹消息轨迹是指一条消息从生产者发送到RocketMQ服务端,再到消费者消费处理,整个过程中的各个相关节点的时间、状态等数据汇聚而成的完整链路信息。该轨迹可作为生产环境中排查问题强有力的数据支持。
RocketMQ系统中,一条消息的完整链路包含生产者、服务端、消费者三个角色,每个角色处理消息的过程中都会在轨迹链路中增加相关的信息,将这些信息汇聚即可获取任意消息当前的状态,涉及的数据如下图所示。
使用场景在生产环境的消息收发不符合预期时可以使用消息轨迹工具排查问题。通过消息的属性(Message ID、Message Key、Topic)搜索相关的消息轨迹,找到消息的实际收发状态,帮助诊断问题。
如何启动和使用消息轨迹启用消息轨迹修改Broker配置12345678## 是否开启自动创建消息轨迹的Topic,默认falsetraceTo ...
RocketMq并发消费和顺序消费机制
并发消费相关配置
配置
说明
默认
consumeMessageBatchMaxSize
批量消费消息的最大数量
1
consumeThreadMin
消费线程的最小数量
20
consumeThreadMax
消费线程最大数量
20
consumeTimeout
消费超时时间,单位分钟
15
消息消费线程池ConsumeMessageConcurrentlyService构造方法里面构造了 消费现场处理器
1234567891011// 无边界阻塞队列 this.consumeRequestQueue = new LinkedBlockingQueue<>(); String consumerGroupTag = (consumerGroup.length() > 100 ? consumerGroup.substring(0, 100) : consumerGroup) + "_"; this.consumeExecutor = new ThreadPoolExecutor( this.de ...
Rocketmq并发消费失败重试机制
问题
消费的时候是一批的消息, 如果其中某条消费失败了,是所有的消息都会被重试吗?
用户可以自己控制重试次数、重试间隔时间吗
批量消费消息,能否自己控制重试的起始偏移量?比如10条消息,第5条失败了,那么只重试第5条和后面的所有。
重试的消息是如何被重新消费的?
如果关闭了broker的写权限,对消息消费的重试有没影响?
并发消费触发时机消费者在消费完成之后, 需要处理消费的结果, 是成功或失败
ConsumeMessageConcurrentlyService#processConsumeResult
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 /** * 石臻臻的杂货铺 * vx: shiyanzu001 **/ public void processConsumeResult( final ConsumeConcurrentlyStatus status, final ConsumeCon ...
Kafka配置SASL_PLAINTEXT安全认证协议详解
在 0.9.0.0 版中,Kafka 社区添加了许多功能,这些功能可以单独使用或一起使用,以提高 Kafka 集群的安全性。目前支持安全措施有很多, 其中就有 :使用 SSL 或 SASL 对来自客户端(生产者和消费者)、其他Broker和工具对Broker连接进行身份验证。
其中还有一些概念您需要了解一下,就是安全协议,关于安全协议详情可以看一文搞懂Kafka中的listeners和advertised.listeners以及其他通信配置
其中安全协议有以下几个, 都很明确
PLAINTEXT => PLAINTEXT 不需要授权,非加密通道
SSL => SSL 使用SSL加密通道
SASL_PLAINTEXT => SASL_PLAINTEXT 使用SASL认证非加密通道
SASL_SSL => SASL_SSL 使用SASL认证并且SSL加密通道
SASL_PLAINTEXT和SASL_SSL的区别就是数据的传输是不是启动了加密通道, 但是本质上都是适用的SASL认证。
其中SASL认证又分为多种机制, Ka ...
图解Kafka消费者客户端分区分配策略
图解Kafka消费者客户端分区分配策略
寻找协调器FindCoordinatorRequest请求流程
kafka管控推荐使用 滴滴开源 的 Kafka运维管控平台 更符合国人的操作习惯 ,
更强大的管控能力 ,更高效的问题定位能力 、更便捷的集群运维能力 、更专业的资源治理 、 更友好的运维生态
客户端发起请求我们在分析消费者的时候, 有看到调用FindCoordinatorRequest的请求
12345678910111213private RequestFuture<Void> sendFindCoordinatorRequest(Node node) { // initiate the group metadata request log.debug("Sending FindCoordinator request to broker {}", node); FindCoordinatorRequest.Builder requestBuilder = new FindCoordinatorRequest.Builder( ...
多网络情况下,Kafka客户端如何选择合适的网络发起请求
多网络情况下,Kafka客户端如何选择合适的网络发起请求