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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章