本文整理匯總了Java中com.alibaba.rocketmq.broker.mqtrace.SendMessageContext類的典型用法代碼示例。如果您正苦於以下問題:Java SendMessageContext類的具體用法?Java SendMessageContext怎麽用?Java SendMessageContext使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
SendMessageContext類屬於com.alibaba.rocketmq.broker.mqtrace包,在下文中一共展示了SendMessageContext類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: executeSendMessageHookBefore
import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookBefore(final ChannelHandlerContext ctx, final RemotingCommand request,
SendMessageContext context) {
if (hasSendMessageHook()) {
for (SendMessageHook hook : this.sendMessageHookList) {
try {
final SendMessageRequestHeader requestHeader =
(SendMessageRequestHeader) request
.decodeCommandCustomHeader(SendMessageRequestHeader.class);
context.setProducerGroup(requestHeader.getProducerGroup());
context.setTopic(requestHeader.getTopic());
context.setBodyLength(request.getBody().length);
context.setMsgProps(requestHeader.getProperties());
context.setBornHost(RemotingHelper.parseChannelRemoteAddr(ctx.channel()));
context.setBrokerAddr(this.brokerController.getBrokerAddr());
context.setQueueId(requestHeader.getQueueId());
hook.sendMessageBefore(context);
requestHeader.setProperties(context.getMsgProps());
}
catch (Throwable e) {
}
}
}
}
開發者ID:y123456yz,項目名稱:reading-and-annotate-rocketmq-3.4.6,代碼行數:24,代碼來源:AbstractSendMessageProcessor.java
示例2: executeSendMessageHookAfter
import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookAfter(final RemotingCommand response, final SendMessageContext context) {
if (hasSendMessageHook()) {
for (SendMessageHook hook : this.sendMessageHookList) {
try {
if (response != null) {
final SendMessageResponseHeader responseHeader =
(SendMessageResponseHeader) response.readCustomHeader();
context.setMsgId(responseHeader.getMsgId());
context.setQueueId(responseHeader.getQueueId());
context.setQueueOffset(responseHeader.getQueueOffset());
context.setCode(response.getCode());
context.setErrorMsg(response.getRemark());
}
hook.sendMessageAfter(context);
}
catch (Throwable e) {
}
}
}
}
開發者ID:y123456yz,項目名稱:reading-and-annotate-rocketmq-3.4.6,代碼行數:22,代碼來源:AbstractSendMessageProcessor.java
示例3: processRequest
import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
@Override
public RemotingCommand processRequest(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
SendMessageContext mqtraceContext = null;
switch (request.getCode()) {
case RequestCode.CONSUMER_SEND_MSG_BACK: //客戶端消費失敗,重新打回的消息
return this.consumerSendMsgBack(ctx, request);
default: //其他消息
SendMessageRequestHeader requestHeader = parseRequestHeader(request); //客戶端producer發送的SEND_MESSAGE 等消息都在這裏麵解析
if (requestHeader == null) {
return null;
}
mqtraceContext = buildMsgContext(ctx, requestHeader);
this.executeSendMessageHookBefore(ctx, request, mqtraceContext);
//消息處理 把接收的曉得寫入commitlog等也是在這裏麵
final RemotingCommand response = this.sendMessage(ctx, request, mqtraceContext, requestHeader);
this.executeSendMessageHookAfter(response, mqtraceContext);
return response;
}
}
示例4: executeSendMessageHookBefore
import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookBefore(final ChannelHandlerContext ctx, final RemotingCommand request,
SendMessageContext context) {
if (hasSendMessageHook()) {
for (SendMessageHook hook : this.sendMessageHookList) {
try {
final SendMessageRequestHeader requestHeader =
(SendMessageRequestHeader) request
.decodeCommandCustomHeader(SendMessageRequestHeader.class);
context.setProducerGroup(requestHeader.getProducerGroup());
context.setTopic(requestHeader.getTopic());
context.setBodyLength(request.getBody().length);
context.setMsgProps(requestHeader.getProperties());
context.setBornHost(RemotingHelper.parseChannelRemoteAddr(ctx.channel()));
context.setBrokerAddr(this.brokerController.getBrokerAddr());
context.setQueueId(requestHeader.getQueueId());
hook.sendMessageBefore(context);
requestHeader.setProperties(context.getMsgProps());
} catch (Throwable e) {
}
}
}
}
示例5: executeSendMessageHookAfter
import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
public void executeSendMessageHookAfter(final RemotingCommand response, final SendMessageContext context) {
if (hasSendMessageHook()) {
for (SendMessageHook hook : this.sendMessageHookList) {
try {
if (response != null) {
final SendMessageResponseHeader responseHeader =
(SendMessageResponseHeader) response.readCustomHeader();
context.setMsgId(responseHeader.getMsgId());
context.setQueueId(responseHeader.getQueueId());
context.setQueueOffset(responseHeader.getQueueOffset());
context.setCode(response.getCode());
context.setErrorMsg(response.getRemark());
}
hook.sendMessageAfter(context);
} catch (Throwable e) {
}
}
}
}
示例6: processRequest
import com.alibaba.rocketmq.broker.mqtrace.SendMessageContext; //導入依賴的package包/類
@Override
public RemotingCommand processRequest(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
SendMessageContext mqtraceContext = null;
switch (request.getCode()) {
/**
* 消費方發送回來的消息,單獨處理
*/
case RequestCode.CONSUMER_SEND_MSG_BACK:
return this.consumerSendMsgBack(ctx, request);
default:
SendMessageRequestHeader requestHeader = parseRequestHeader(request);
if (requestHeader == null) {
return null;
}
mqtraceContext = buildMsgContext(ctx, requestHeader);
this.executeSendMessageHookBefore(ctx, request, mqtraceContext);
/**
* 發送消息
*/
final RemotingCommand response = this.sendMessage(ctx, request, mqtraceContext, requestHeader);
this.executeSendMessageHookAfter(response, mqtraceContext);
return response;
}
}