一文读懂RocketMQ生产者DefaultMQProducer的使用

前面我们简单的介绍了常用的消息中间件,本篇我们主要介绍消息中间件RocketMQ生产者的使用,RocketMQ实现了两种类型的
生产者DefaultMQProducer和TransactionMQProducer,前者生产普通消息,后者生产事务消息。而本篇我们主要介绍DefaultMQProducer的使用。在阅读本篇之前你需要了解RocketMQ的总体结构和RocketMQ的相关概念,这些内容RocketMQ官网已经写的非常清楚,如果不清楚的可以参考RocketMQ GitHub

在此之前我们首先介绍Message的使用,Message是RocketMQ对消息的封装,我们也只能将消息封装为Message实例,才能通过RocketMQ发送出去。首先我们看下RocketMQ对消息的定义:

public class Message implements Serializable {
    private static final long serialVersionUID = 8445773977080406428L;
    //主题可以通过RocketMQ Console创建
    private String topic;
    //消息扩展信息,Tag、keys、消息延迟级别都保存在Map中
    private Map<String, String> properties;
    //目前没用
    private int flag;
    //消息体,字节数组
    private byte[] body;
    //事务ID
    private String transactionId;
    //设置消息的key,多个Key可以用MessageConst.KEY_SEPARATOR分隔或者直接调用第二个方法,传入一个集合
    //最终保存在 properties中, key为MessageConst.PROPERTY_KEYS
    public void setKeys(String keys) {}
    public void setKeys(Collection<String> keys) { }
    //设置主题,也可以通过构造传入
    public void setTopic(String topic) {}
    //设置Tag,消息过滤标记,用户可以订阅topic的某些Tag
    public void setTags(String tags) {}
    //设置延迟级别,延迟多久消费者可以消费
    public void setDelayTimeLevel(int level) {}
    //设置消息体,可通过构造传入
    public void setBody(byte[] body) {}
    //设置是否等消息存储成功
    public void setWaitStoreMsgOK(boolean waitStoreMsgOK) {}
    //设置用户ID
    public void setBuyerId(String buyerId) {}
    //设置事务ID
    public void setTransactionId(String transactionId) {}
    //设置属性properties key为name value为value
    void putProperty(final String name, final String value) {}
    //放置其他扩展信息,最终调用putProperty(final String name, final String value)
    public void putUserProperty(final String name, final String value) {}
    //设置properties
    void setProperties(Map<String, String> properties) {   }
    //设置flag
    public void setFlag(int flag) {}
}

在学习Message的结构之后,我们开始学习DefaultMQProducer是如何发送消息的,DefaultMQProducer提供了多个API用于发送不同类型的消息。如下为DefaultMQProducer提供的消息API。方法的异常以及主要逻辑这里不再展示,可以参考源码。<

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值