RocketMQ中的线程名称

Boss线程池 NioEventLoopGroup
NettyNIOBoss_1

Worker线程池 NioEventLoopGroup
NettyServerNIOSelector_3_1
NettyServerNIOSelector_3_2
NettyServerNIOSelector_3_3

Executor线程池 DefaultEventExecutorGroup 负责具体的编码, 解码, 空闲管理等
NettyServerCodecThread_1
NettyServerCodecThread_2
NettyServerCodecThread_3
NettyServerCodecThread_4
NettyServerCodecThread_5
NettyServerCodecThread_6
NettyServerCodecThread_7
NettyServerCodecThread_8

业务线程池 BrokerFixedThreadPoolExecutor extends ThreadPoolExecutor

1 + N + M1 + M2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你使用的是 RocketMQ 的 Java 客户端,可以通过使用 `MessageListenerConcurrently` 接口来开发消费者应用程序。接口的方法 `consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context)` 可以在消息到达时自动调用。当应用程序在处理消息时出现异常,可以使用 `context.setDelayLevelWhenNextConsume(delayLevel)` 方法来设置下次消费的延迟级别,从而实现自动重启消费线程。 以下是示例代码: ```java public class MyMessageListener implements MessageListenerConcurrently { private DefaultMQPushConsumer consumer; public MyMessageListener(DefaultMQPushConsumer consumer) { this.consumer = consumer; } @Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) { try { // 处理消息 for (MessageExt message : msgs) { System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), new String(message.getBody())); } return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } catch (Exception e) { // 异常处理,设置延迟级别 context.setDelayLevelWhenNextConsume(5); e.printStackTrace(); return ConsumeConcurrentlyStatus.RECONSUME_LATER; } } } ``` 在应用程序,可以使用以下代码来启动消费者: ```java public class MyConsumer { public static void main(String[] args) throws MQClientException { // 创建消费者 DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("my_consumer_group"); consumer.setNamesrvAddr("localhost:9876"); // 订阅主题和标签 consumer.subscribe("my_topic", "my_tag"); // 注册消息监听器 MyMessageListener messageListener = new MyMessageListener(consumer); consumer.registerMessageListener(messageListener); // 启动消费者 consumer.start(); } } ``` 在处理消息时发生异常时,会调用 `consumeMessage` 方法的异常处理代码,并设置下次消费的延迟级别为 5 秒。这个级别越高,下次消费的时间就越晚。当级别为 0 时,表示立即重新消费。如果重试多次后仍然失败,可以将消息发送到死信队列,进行手动处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值