文档章节

聊聊rocketmq的RemotingException

go4it
 go4it
发布于 2018/08/08 15:43
字数 434
阅读 682
收藏 0

本文主要研究一下rocketmq的RemotingException

RemotingException

org/apache/rocketmq/remoting/exception/RemotingException.java

public class RemotingException extends Exception {
    private static final long serialVersionUID = -5690687334570505110L;

    public RemotingException(String message) {
        super(message);
    }

    public RemotingException(String message, Throwable cause) {
        super(message, cause);
    }
}
  • 继承自checked exception,底下有RemotingCommandException、RemotingConnectException、RemotingSendRequestException、RemotingTimeoutException、RemotingTooMuchRequestException

RemotingCommandException

org/apache/rocketmq/remoting/exception/RemotingCommandException.java

public class RemotingCommandException extends RemotingException {
    private static final long serialVersionUID = -6061365915274953096L;

    public RemotingCommandException(String message) {
        super(message, null);
    }

    public RemotingCommandException(String message, Throwable cause) {
        super(message, cause);
    }
}
  • RemotingCommand解码decodeCommandCustomHeader时可能抛出的异常

RemotingConnectException

org/apache/rocketmq/remoting/exception/RemotingConnectException.java

public class RemotingConnectException extends RemotingException {
    private static final long serialVersionUID = -5565366231695911316L;

    public RemotingConnectException(String addr) {
        this(addr, null);
    }

    public RemotingConnectException(String addr, Throwable cause) {
        super("connect to <" + addr + "> failed", cause);
    }
}
  • NettyRemotingClient在channel出现问题的时候会抛出RemotingConnectException

RemotingSendRequestException

org/apache/rocketmq/remoting/exception/RemotingSendRequestException.java

public class RemotingSendRequestException extends RemotingException {
    private static final long serialVersionUID = 5391285827332471674L;

    public RemotingSendRequestException(String addr) {
        this(addr, null);
    }

    public RemotingSendRequestException(String addr, Throwable cause) {
        super("send request to <" + addr + "> failed", cause);
    }
}
  • NettyRemotingClient在发送请求失败的时候,会抛出RemotingSendRequestException

RemotingTimeoutException

org/apache/rocketmq/remoting/exception/RemotingTimeoutException.java

public class RemotingTimeoutException extends RemotingException {

    private static final long serialVersionUID = 4106899185095245979L;

    public RemotingTimeoutException(String message) {
        super(message);
    }

    public RemotingTimeoutException(String addr, long timeoutMillis) {
        this(addr, timeoutMillis, null);
    }

    public RemotingTimeoutException(String addr, long timeoutMillis, Throwable cause) {
        super("wait response on the channel <" + addr + "> timeout, " + timeoutMillis + "(ms)", cause);
    }
}
  • NettyRemotingClient在发送请求时,如果返回回来的RemotingCommand为null,但是发送请求成功,则抛出RemotingTimeoutException

RemotingTooMuchRequestException

org/apache/rocketmq/remoting/exception/RemotingTooMuchRequestException.java

public class RemotingTooMuchRequestException extends RemotingException {
    private static final long serialVersionUID = 4326919581254519654L;

    public RemotingTooMuchRequestException(String message) {
        super(message);
    }
}
  • NettyRemotingAbstract在执行请求之前要进行流控,如果获取不到信号量,则区分是否是超时,如果是无timeout获取信号量也没获取到,则表示RemotingTooMuchRequestException

小结

rocketmq的remoting模块的异常采用的是checked exception,定义了根异常RemotingException,底下有几个异常分别为RemotingCommandException、RemotingConnectException、RemotingSendRequestException、RemotingTimeoutException、RemotingTooMuchRequestException。

doc

© 著作权归作者所有

go4it
粉丝 91
博文 1250
码字总数 1168102
作品 0
深圳
私信 提问
加载中

评论(0)

RocketMQ 可视化环境搭建和基础代码使用

RocketMQ 是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求, 在 2016 年底捐赠给 Apache 开源基金会成为孵化项目,经过不到...

王磊的博客
2019/07/03
56
0
聊聊rocketmq的NettyEncoder及NettyDecoder

序 本文主要研究一下rocketmq的NettyEncoder及NettyDecoder NettyEncoder org/apache/rocketmq/remoting/netty/NettyEncoder.java 这里继承MessageToByteEncoder,类型是RemotingCommand,先......

go4it
2018/08/07
35
0
聊聊rocketmq的NettyClientConfig

序 本文主要研究一下rocketmq的NettyClientConfig NettyClientConfig org/apache/rocketmq/remoting/netty/NettyClientConfig.java 这里主要有几个参数: clientWorkerThreads,默认为4 cli......

go4it
2018/08/04
221
0
聊聊rocketmq的ProducerImpl

序 本文主要研究一下rocketmq的ProducerImpl ProducerImpl io/openmessaging/rocketmq/producer/ProducerImpl.java 发送消息的方法主要是代理给rocketmqProducer 另外调用OMSUtil.msgConver......

go4it
2018/07/28
39
0
聊聊rocketmq的SequenceProducerImpl

序 本文主要研究一下rocketmq的SequenceProducerImpl SequenceProducerImpl io/openmessaging/rocketmq/producer/SequenceProducerImpl.java 采用的是LinkedBlockingQueue,send方法实际调用......

go4it
2018/07/30
21
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka 数据可靠性、消息发送传输

本篇分别介绍 数据可靠性保障 消息发送模式 消息传输保障 数据可靠性保障 当Producer向Leader发送数据时,可以通过request.required.acks参数来设置数据可靠性的级别,各个级别及其含义如下表...

moon888
28分钟前
78
0
敏捷原则比敏捷框架更重要

2018年5月10日,敏捷宣言的发起人之一Ron Jeffries公开宣称“开发人员应放弃使用敏捷框架”。Ron Jeffries提到,诸如Scrum和看板之类的敏捷框架,与敏捷原则相差甚远,并不能为开发人员提供好...

Worktile
30分钟前
69
0
尽速下载器 支持HTTP/磁力链接/BT种子协议下载预览 安卓10可用

下载加速,支持HTTP/磁力链接/BT种子等多种下载协议 可完美替换安卓原生下载器 支持手机自带浏览器点击下载链接,直接调出APP 超高下载成功率、超快下载速度 版本:1.6.1 大小:11.5 MB 下载...

xiaogg
32分钟前
63
0
一个用于在浏览器上展示bim模型的vue插件

# wl-bim-viewer 一个用于在浏览器上展示bim模型的vue插件,可以预览转化后的CAD文件。 基于vue和autodesk forge viewer写成。 目前支持单模型加载及多模型顺序加载。 其他特性正在扩展中。 ...

念其蔚蓝
36分钟前
57
0
如何创建spring-boot的web项目

第一步:新建一个maven项目 新建项目,选择maven 填写GroupId和ArtifactId 下一步默认即可,直接点击finish 创建完成后项目结构如下 第二步: 配置pom.xml 在pom.xml中添加如下代码: <p...

幻境fairy
58分钟前
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部