做動(dòng)態(tài)h5的網(wǎng)站b站視頻推廣網(wǎng)站2023
- 消費(fèi)者組:消費(fèi)者所在的消費(fèi)者組名稱。這個(gè)信息用于確保同一個(gè)消費(fèi)者組內(nèi)的消費(fèi)者不會(huì)重復(fù)地消費(fèi)相同的消息。
- MessageModel:消息模型,可能的值為集群消費(fèi)或廣播消費(fèi)。
- ConsumeType:消費(fèi)類型,可能的值有"主動(dòng)消費(fèi)"和"被動(dòng)消費(fèi)"。
- consumeFromWhere:消費(fèi)起始點(diǎn)位
- 消費(fèi)主題和訂閱數(shù)據(jù):消費(fèi)者正在訂閱的主題列表以及對(duì)應(yīng)的訂閱數(shù)據(jù),例如每個(gè)主題的tag表達(dá)式。
- unitmode:用于確保具有相同業(yè)務(wù)標(biāo)識(shí)的消息被同一個(gè)消費(fèi)者實(shí)例消費(fèi)
- 消費(fèi)者運(yùn)行時(shí)信息:包括客戶端版本、啟動(dòng)時(shí)間等。
一下是生成消息體的代碼:
private HeartbeatData prepareHeartbeatData() {HeartbeatData heartbeatData = new HeartbeatData();// clientIDheartbeatData.setClientID(this.clientId);// Consumerfor (Map.Entry<String, MQConsumerInner> entry : this.consumerTable.entrySet()) {MQConsumerInner impl = entry.getValue();if (impl != null) {ConsumerData consumerData = new ConsumerData();consumerData.setGroupName(impl.groupName());consumerData.setConsumeType(impl.consumeType());consumerData.setMessageModel(impl.messageModel());consumerData.setConsumeFromWhere(impl.consumeFromWhere());consumerData.getSubscriptionDataSet().addAll(impl.subscriptions());consumerData.setUnitMode(impl.isUnitMode());heartbeatData.getConsumerDataSet().add(consumerData);}}// Producerfor (Map.Entry<String/* group */, MQProducerInner> entry : this.producerTable.entrySet()) {MQProducerInner impl = entry.getValue();if (impl != null) {ProducerData producerData = new ProducerData();producerData.setGroupName(entry.getKey());heartbeatData.getProducerDataSet().add(producerData);}}return heartbeatData;}