6.RocketMQ 客户端开发进阶

1. Producer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UdybXrsU-1573459209377)(https://github.com/sumanit/examples/blob/master/MQ/RocketMQ/Diagram/DefaultMQProducer.jpg?raw=true)]

1.1. 构造参数

  • producerGroup
    生产者组名
  • RPCHook
    远程RPC调用钩子
  • enableMsgTrace
    启用消息跟踪
  • customizedTraceTopic
    自定义跟踪主题

1.2. 方法

1.2.1. 同步发送方法

    SendResult send(Message msg)
    SendResult send(Message msg, long timeout)
    SendResult send(Message msg, MessageQueue mq)
    SendResult send(Message msg, MessageQueue mq, long timeout)
    SendResult send(Message msg, MessageQueueSelector selector, Object arg)
    SendResult send(Message msg, MessageQueueSelector selector, Object arg, long timeout) 

1.2.2. 异步发送方法

    void send(Message msg, SendCallback sendCallback)
    void send(Message msg, SendCallback sendCallback, long timeout)
    void send(Message msg, MessageQueue mq, SendCallback sendCallback)
    void send(Message msg, MessageQueue mq, SendCallback sendCallback, long timeout)
    void send(Message msg, MessageQueueSelector selector, Object arg,SendCallback sendCallback)
    void send(Message msg, MessageQueueSelector selector, Object arg,SendCallback sendCallback, long timeout)

1.2.3. 单向发送方法

  void sendOneway(Message msg)
  void sendOneway(Message msg, MessageQueue mq)
  void sendOneway(Message msg, MessageQueueSelector selector, Object arg)

1.2.4. 批量发送方法

    SendResult send(Collection<Message> msgs)
    SendResult send(Collection<Message> msgs, long timeout)
    SendResult send(Collection<Message> msgs, MessageQueue mq)
    SendResult send(Collection<Message> msgs, MessageQueue mq, long timeout)

1.2.5. 使用事务发送

    TransactionSendResult sendMessageInTransaction(Message msg,LocalTransactionExecuter tranExecuter, Object arg)
    TransactionSendResult sendMessageInTransaction(Message msg,Object arg) 

1.2.6. 其他方法

    void start()
    void shutdown()
    List<MessageQueue> fetchPublishMessageQueues(String topic)

1.2.7. 方法分析

同步发送 时会将发送结果直接返回

异步发送 则多了一个回调函数,但是没有返回值

单向发送 则既无回调函数也无返回值,且没有超时

批量发送 是同步发送多条,其他参数同步发送一致

事务发送 则返回值为事务发送结果

其他方法 开始结束 常规操作 剩下的一个方法是返回一个topic里面的所有队列Queue

2. Consumer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dEuwx029-1573459209380)(https://github.com/sumanit/examples/blob/master/MQ/RocketMQ/Diagram/MQConsumer.jpg?raw=true)]

2.1. PullConsumer 主动拉取

    void start()

    void shutdown()

    void registerMessageQueueListener(String topic, MessageQueueListener listener)

    PullResult pull(MessageQueue mq, String subExpression, long offset, int maxNums) 

    PullResult pull(MessageQueue mq, String subExpression, long offset, int maxNums, long timeout)

    PullResult pull(MessageQueue mq, MessageSelector selector, long offset, int maxNums)

    PullResult pull(MessageQueue mq, MessageSelector selector, long offset, int maxNums, long timeout)
 
    void pull(MessageQueue mq, String subExpression, long offset, int maxNums,PullCallback pullCallback)

    void pull(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback, long timeout)


    void pull(MessageQueue mq, MessageSelector selector, long offset, int maxNums, PullCallback pullCallback)
        
    void pull(MessageQueue mq, MessageSelector selector, long offset, int maxNums, PullCallback pullCallback, long timeout)
  
    PullResult pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums) 
    
    void pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback) 
  
    void updateConsumeOffset(MessageQueue mq, long offset) 
  
    long fetchConsumeOffset(MessageQueue mq, boolean fromStore)

    Set<MessageQueue> fetchMessageQueuesInBalance(String topic) 

    void sendMessageBack(MessageExt msg, int delayLevel, String brokerName, String consumerGroup)

2.2. PushConsumer 被动推送

    void start(

    void shutdown()

    void registerMessageListener(MessageListener messageListener)

    void registerMessageListener(MessageListenerConcurrently messageListener)

    void registerMessageListener(MessageListenerOrderly messageListener)

    void subscribe(String topic, String subExpression)

    void subscribe(String topic, String fullClassName,final String filterClassSource)

    void subscribe(String topic, MessageSelector selector) throws MQClientException

    void unsubscribe(String topic)

    void updateCorePoolSize(int corePoolSize)

    void suspend()

    void resume()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值