rocketmq 雪崩后客户端超时

rocketmq 雪崩后客户端超时


看了源代码,mq broker 方核心日志信息:

1. 通过 mqAdmin 的消息 id,查看信息的 born 和 stroe 时间

2. 通过慢查日志查看.

defaultMessageStore.java 中
 PutMessageResult putMessage(MessageExtBrokerInner msg) {

log
. warn( "putMessage not in lock eclipse time(ms)={}, bodyLength={}", eclipseTime, msg.getBody(). length);

3.业务方的统计日志.

4. 线程堆栈统计.


报错异常信息:

com.paygateway.core.service.integration.bean.PayGatewayPaySuccess@462ba599,Flag=644560335968fcbd9e27515f3bc2ac86
com.alibaba.rocketmq.client.exception.MQClientException: Send [2] times, still failed, cost [6002]ms, Topic: PAY_GATEWAY_CALLBACK_SUCCESS_TOPIC, BrokersSent: [broker_cluster_3, broker_cluster_0, null]
For more information, please visit the url, https://github.com/alibaba/RocketMQ/issues/64
        at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:590)
        at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1026)
        at com.alibaba.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:122)


Caused by: com.alibaba.rocketmq.remoting.exception.RemotingTimeoutException: wait response on the channel <100.69.87.39:10911> timeout, 3000(ms)
        at com.alibaba.rocketmq.remoting.netty.NettyRemotingAbstract.invokeSyncImpl(NettyRemotingAbstract.java:378)
        at com.alibaba.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:625)
        at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:395)
        at com.alibaba.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:378)
        at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:698)

        at com.alibaba.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:514)

    既要看 provider 也要看 consumer

    业务方报错:

    provider  :

TOPIC_PUT_SIZE

  less  stats-2017-07-14.0.log| grep '2017-07-14 22:27' | grep TOPIC_PUT_SIZE | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8; tpss+=$8} END { print tpss }'
528089


TPS put num

 $  less  ../stats.log| grep '2017-07-15 21:18' | grep TOPIC_PUT_NUMS | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8; tpss+=$8} END { print tpss }'
298.66
 $   less stats-2017-07-14.0.log
$  less  stats-2017-07-14.0.log| grep '2017-07-14 22:27' | grep TOPIC_PUT_NUMS | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8; tpss+=$8} END { print tpss }'
596.28

1000B= 1k /4=256个字符.
22:27分 正常,周五比周四大 (和周四比并没有查很多.)
 $   less stats-2017-07-14.0.log| grep '2017-07-14 22:27' | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8} END { for ( i in tps) print i,tps[i]/10000,siz[i]/10000}' |  sort -n -k 3 -r | head -n 2
TCP_MSG_TOPIC@tcpMsgConsumerGroup 11.7738 706.43
TCP_MSG_HEARTBEATS_TOPIC@lbsGroup 9.46656  567.994

[]$   less stats-2017-07-13.0.log| grep '2017-07-13 22:27' | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8} END { for ( i in tps) print i,tps[i]/10000,siz[i]/10000}' |  sort -n -k 3 -r | head -n 2
TCP_MSG_TOPIC@tcpMsgConsumerGroup 10.2319 613.914
TCP_MSG_HEARTBEATS_TOPIC@lbsGroup 7.92051 475.231
22:29 分.异常 周五比周四小.
[]$   less stats-2017-07-14.0.log| grep '2017-07-14 22:29' | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8} END { for ( i in tps) print i,tps[i]/10000,siz[i]/10000}' |  sort -n -k 3 -r | head -n 2
TCP_MSG_TOPIC@tcpMsgConsumerGroup 7.05011 423.006
TCP_MSG_HEARTBEATS_TOPIC@lbsGroup 6.04157 362.494
[]$   less stats-2017-07-13.0.log| grep '2017-07-13 22:29' | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8} END { for ( i in tps) print i,tps[i]/10000,siz[i]/10000}' |  sort -n -k 3 -r | head -n 2
TCP_MSG_TOPIC@tcpMsgConsumerGroup 10.1158 606.95
TCP_MSG_HEARTBEATS_TOPIC@lbsGroup 7.75625 465.375





 21:29 正常 周五比周四的大
[]$   less stats-2017-07-14.0.log| grep '2017-07-14 21:29' | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8} END { for ( i in tps) print i,tps[i]/10000,siz[i]/10000}' |  sort -n -k 2 -r | head -n 2
TCP_MSG_TOPIC@tcpMsgConsumerGroup 15.0323 901.939
TCP_MSG_SMDATA_TOPIC@lbsGroup 10.3313 619.879
[]$   less stats-2017-07-13.0.log| grep '2017-07-13 21:29' | awk -F' - |\\[|\\]|SUM:|TPS:|AVGPT:' '{ minute=substr($1,12,5); siz[$5]+=$7; tps[$5]+=$8} END { for ( i in tps) print i,tps[i]/10000,siz[i]/10000}' |  sort -n -k 2 -r | head -n 2
TCP_MSG_TOPIC@tcpMsgConsumerGroup 13.3589 801.534
TCP_MSG_SMDATA_TOPIC@lbsGroup 8.98617 539.17


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis雪崩是指在缓存中大量的数据同时失效或者被清除,导致大量的请求直接打到数据库上,从而引起数据库的压力过大,甚至导致数据库崩溃的情况。以下是一些与Redis雪崩相关的面试题及其答案: 1. 什么是Redis雪崩? 答:Redis雪崩是指在缓存中大量的数据同时失效或者被清除,导致大量的请求直接打到数据库上,从而引起数据库的压力过大,甚至导致数据库崩溃的情况。 2. 如何预防Redis雪崩? 答:预防Redis雪崩可以采取以下措施: - 设置合理的缓存过期时间,避免大量缓存同时失效。 - 使用分布式锁或者互斥锁来控制对缓存的并发访问。 - 设置热点数据永不过期,保证热点数据的可用性。 - 使用多级缓存架构,将请求分散到不同的缓存节点上。 3. 如何应对Redis雪崩发生后的情况? 答:当Redis雪崩发生后,可以采取以下措施: - 使用熔断机制,暂时关闭对数据库的访问,避免数据库压力过大。 - 使用限流机制,控制请求的并发量,避免数据库被过多的请求打垮。 - 使用缓存预热机制,提前将热点数据加载到缓存中,减少对数据库的访问。 4. 什么是缓存穿透?如何预防缓存穿透? 答:缓存穿透是指查询一个不存在的数据,由于缓存中没有该数据,每次查询都会直接打到数据库上,从而引起数据库的压力过大。预防缓存穿透可以采取以下措施: - 使用布隆过滤器来判断请求的数据是否存在于缓存中。 - 对于查询不存在的数据,也将其缓存起来,但设置一个较短的过期时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值