C#推送RocketMQ信息


前段時間項目上推送待辦信息,接收方OA用RocketMQ進行接收待辦,這也是我第一次接觸RMq,記錄下使用過程。(參考https://rocketmq.apache.org/)

一、准備工作

引入相關類文件dll.(Nuget下載就好了)。

 

前期准備工作完成后,進入主題。

二、代碼與實操

由於.NET framework版本的問題(kafka 只支持4.8及以上版本), 建議使用RocketMQ.

 1 a)消息格式:
 2 消息主題: kara_linker
 3 b)消息體:
 4 {
 5 "messageTo":"$TOPIC",
 6 "messageBody":{待辦/任務跟蹤詳情}
 7 }
 8 MessageTO Topic: 
 9 a)待辦: task_info_topicName
10 b)任務跟蹤: task_trace_topicName

前期鋪墊完成,直接上代碼。

public bool _requestMq(string msgBody,out string errMsg) 
        {
            bool result = true;
            try
            {
                DefaultMQProducer p = new DefaultMQProducer("producerGroup");  //producerGroup自行約定    
                p.setNamesrvAddr("集群IP:port");//多個IP用';'隔開 如:1.1.1.1:2230;1.1.1.2:2230
                p.setInstanceName(getRocketMqUniqeInstanceName());
                p.setVipChannelEnabled(false);
                p.start();
                var data = "傳輸消息";
                org.apache.rocketmq.common.message.Message m = new org.apache.rocketmq.common.message.Message("kara_linker","task_info_topicName", data);
                SendResult sr = p.send(m);
                
                Pub_Method.WriteFile("sr.getMsgId():"+sr.getMsgId(), logName, out errMsg, logKey);//getMsgId()為返回標識,最好記錄下,后期避免打嘴官司。
                p.shutdown();
                result = true;
                errMsg = "";
            }
            catch (Exception ex)
            {
                result = false;
                errMsg = ex.Message;
                Pub_Method.WriteFile("發送信息失敗:" + ex.Message.ToString(), logName, out errMsg, logKey);
            }
            
            return result;
        }

 

至此事成。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM