String properties = messageProperties2String(message.getProperties()); byte[] propertiesBytes = properties.getBytes(CHARSET_UTF8);
public static MessageExt decode(java.nio.ByteBuffer byteBuffer) { return decode(byteBuffer, true, true, false); }
@Override public MessageExt viewMessage(String topic, String msgId) throws RemotingException, MQBrokerException, InterruptedException, MQClientException { try { MessageDecoder.decodeMessageId(msgId); return this.viewMessage(msgId); } catch (Exception e) { // Ignore } return this.defaultMQPushConsumerImpl.queryMessageByUniqKey(topic, msgId); }
byteBuffer.get(properties); String propertiesString = new String(properties, CHARSET_UTF8); Map<String, String> map = string2messageProperties(propertiesString); msgExt.setProperties(map); String msgId = createMessageId(byteBufferMsgId, msgExt.getStoreHostBytes(), msgExt.getCommitLogOffset()); msgExt.setMsgId(msgId);
protected SendMessageContext buildMsgContext(ChannelHandlerContext ctx, SendMessageRequestHeader requestHeader) { if (!this.hasSendMessageHook()) { return null; } SendMessageContext mqtraceContext; mqtraceContext = new SendMessageContext(); mqtraceContext.setProducerGroup(requestHeader.getProducerGroup()); mqtraceContext.setTopic(requestHeader.getTopic()); mqtraceContext.setMsgProps(requestHeader.getProperties()); mqtraceContext.setBornHost(RemotingHelper.parseChannelRemoteAddr(ctx.channel())); mqtraceContext.setBrokerAddr(this.brokerController.getBrokerAddr()); mqtraceContext.setBrokerRegionId(this.brokerController.getBrokerConfig().getRegionId()); mqtraceContext.setBornTimeStamp(requestHeader.getBornTimestamp()); Map<String, String> properties = MessageDecoder.string2messageProperties(requestHeader.getProperties()); String uniqueKey = properties.get(MessageConst.PROPERTY_UNIQ_CLIENT_MESSAGE_ID_KEYIDX); properties.put(MessageConst.PROPERTY_MSG_REGION, this.brokerController.getBrokerConfig().getRegionId()); properties.put(MessageConst.PROPERTY_TRACE_SWITCH, String.valueOf(this.brokerController.getBrokerConfig().isTraceOn())); requestHeader.setProperties(MessageDecoder.messageProperties2String(properties)); if (uniqueKey == null) { uniqueKey = ""; } mqtraceContext.setMsgUniqueKey(uniqueKey); return mqtraceContext; }
/** * Just decode properties from msg buffer. * * @param byteBuffer msg commit log buffer. */ public static Map<String, String> decodeProperties(java.nio.ByteBuffer byteBuffer) { int topicLengthPosition = BODY_SIZE_POSITION + 4 + byteBuffer.getInt(BODY_SIZE_POSITION); byte topicLength = byteBuffer.get(topicLengthPosition); short propertiesLength = byteBuffer.getShort(topicLengthPosition + 1 + topicLength); byteBuffer.position(topicLengthPosition + 1 + topicLength + 2); if (propertiesLength > 0) { byte[] properties = new byte[propertiesLength]; byteBuffer.get(properties); String propertiesString = new String(properties, CHARSET_UTF8); Map<String, String> map = string2messageProperties(propertiesString); return map; } return null; }
public static List<MessageExt> decodes(java.nio.ByteBuffer byteBuffer) { return decodes(byteBuffer, true); }
String msgId = MessageDecoder.createMessageId(this.msgIdMemory, storeHostBytes, wroteOffset + totalMsgLen - msgLen); if (msgIdBuilder.length() > 0) { msgIdBuilder.append(',').append(msgId);
public static List<MessageExt> decodes(java.nio.ByteBuffer byteBuffer, final boolean readBody) { List<MessageExt> msgExts = new ArrayList<MessageExt>(); while (byteBuffer.hasRemaining()) { MessageExt msgExt = clientDecode(byteBuffer, readBody); if (null != msgExt) { msgExts.add(msgExt); } else { break; } } return msgExts; }
protected SendMessageContext buildMsgContext(ChannelHandlerContext ctx, SendMessageRequestHeader requestHeader) { if (!this.hasSendMessageHook()) { return null; } SendMessageContext mqtraceContext; mqtraceContext = new SendMessageContext(); mqtraceContext.setProducerGroup(requestHeader.getProducerGroup()); mqtraceContext.setTopic(requestHeader.getTopic()); mqtraceContext.setMsgProps(requestHeader.getProperties()); mqtraceContext.setBornHost(RemotingHelper.parseChannelRemoteAddr(ctx.channel())); mqtraceContext.setBrokerAddr(this.brokerController.getBrokerAddr()); mqtraceContext.setBrokerRegionId(this.brokerController.getBrokerConfig().getRegionId()); mqtraceContext.setBornTimeStamp(requestHeader.getBornTimestamp()); Map<String, String> properties = MessageDecoder.string2messageProperties(requestHeader.getProperties()); String uniqueKey = properties.get(MessageConst.PROPERTY_UNIQ_CLIENT_MESSAGE_ID_KEYIDX); properties.put(MessageConst.PROPERTY_MSG_REGION, this.brokerController.getBrokerConfig().getRegionId()); properties.put(MessageConst.PROPERTY_TRACE_SWITCH, String.valueOf(this.brokerController.getBrokerConfig().isTraceOn())); requestHeader.setProperties(MessageDecoder.messageProperties2String(properties)); if (uniqueKey == null) { uniqueKey = ""; } mqtraceContext.setMsgUniqueKey(uniqueKey); return mqtraceContext; }
byteBuffer.get(properties); String propertiesString = new String(properties, CHARSET_UTF8); Map<String, String> map = string2messageProperties(propertiesString); msgExt.setProperties(map); String msgId = createMessageId(byteBufferMsgId, msgExt.getStoreHostBytes(), msgExt.getCommitLogOffset()); msgExt.setMsgId(msgId);
public static Message decodeMessage(ByteBuffer byteBuffer) throws Exception { Message message = new Message(); // 1 TOTALSIZE byteBuffer.getInt(); // 2 MAGICCODE byteBuffer.getInt(); // 3 BODYCRC byteBuffer.getInt(); // 4 FLAG int flag = byteBuffer.getInt(); message.setFlag(flag); // 5 BODY int bodyLen = byteBuffer.getInt(); byte[] body = new byte[bodyLen]; byteBuffer.get(body); message.setBody(body); // 6 properties short propertiesLen = byteBuffer.getShort(); byte[] propertiesBytes = new byte[propertiesLen]; byteBuffer.get(propertiesBytes); message.setProperties(string2messageProperties(new String(propertiesBytes, CHARSET_UTF8))); return message; }
MessageDecoder.decodes(ByteBuffer.wrap(response.getBody()), true);
final ByteBuffer msgIdMemory = ByteBuffer.allocate(MessageDecoder.MSG_ID_LENGTH); String msgId = MessageDecoder.createMessageId(msgIdMemory, MessageExt.socketAddress2ByteBuffer(storeHost), offsetPy); messageIds.put(msgId, nextOffset++); if (nextOffset > maxOffset) {
public MessageExt viewMessage(final String addr, final long phyoffset, final long timeoutMillis) throws RemotingException, MQBrokerException, InterruptedException { ViewMessageRequestHeader requestHeader = new ViewMessageRequestHeader(); requestHeader.setOffset(phyoffset); RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.VIEW_MESSAGE_BY_ID, requestHeader); RemotingCommand response = this.remotingClient.invokeSync(MixAll.brokerVIPChannel(this.clientConfig.isVipChannelEnabled(), addr), request, timeoutMillis); assert response != null; switch (response.getCode()) { case ResponseCode.SUCCESS: { ByteBuffer byteBuffer = ByteBuffer.wrap(response.getBody()); MessageExt messageExt = MessageDecoder.clientDecode(byteBuffer, true); return messageExt; } default: break; } throw new MQBrokerException(response.getCode(), response.getRemark()); }
public MessageExtBrokerInner renewImmunityHalfMessageInner(MessageExt msgExt) { MessageExtBrokerInner msgInner = renewHalfMessageInner(msgExt); String queueOffsetFromPrepare = msgExt.getUserProperty(MessageConst.PROPERTY_TRANSACTION_PREPARED_QUEUE_OFFSET); if (null != queueOffsetFromPrepare) { MessageAccessor.putProperty(msgInner, MessageConst.PROPERTY_TRANSACTION_PREPARED_QUEUE_OFFSET, String.valueOf(queueOffsetFromPrepare)); } else { MessageAccessor.putProperty(msgInner, MessageConst.PROPERTY_TRANSACTION_PREPARED_QUEUE_OFFSET, String.valueOf(msgExt.getQueueOffset())); } msgInner.setPropertiesString(MessageDecoder.messageProperties2String(msgInner.getProperties())); return msgInner; }
public static MessageExt decode(java.nio.ByteBuffer byteBuffer, final boolean readBody) { return decode(byteBuffer, readBody, true, false); }
protected SendMessageContext buildMsgContext(ChannelHandlerContext ctx, SendMessageRequestHeader requestHeader) { if (!this.hasSendMessageHook()) { return null; } SendMessageContext mqtraceContext; mqtraceContext = new SendMessageContext(); mqtraceContext.setProducerGroup(requestHeader.getProducerGroup()); mqtraceContext.setTopic(requestHeader.getTopic()); mqtraceContext.setMsgProps(requestHeader.getProperties()); mqtraceContext.setBornHost(RemotingHelper.parseChannelRemoteAddr(ctx.channel())); mqtraceContext.setBrokerAddr(this.brokerController.getBrokerAddr()); mqtraceContext.setBrokerRegionId(this.brokerController.getBrokerConfig().getRegionId()); mqtraceContext.setBornTimeStamp(requestHeader.getBornTimestamp()); Map<String, String> properties = MessageDecoder.string2messageProperties(requestHeader.getProperties()); String uniqueKey = properties.get(MessageConst.PROPERTY_UNIQ_CLIENT_MESSAGE_ID_KEYIDX); properties.put(MessageConst.PROPERTY_MSG_REGION, this.brokerController.getBrokerConfig().getRegionId()); properties.put(MessageConst.PROPERTY_TRACE_SWITCH, String.valueOf(this.brokerController.getBrokerConfig().isTraceOn())); requestHeader.setProperties(MessageDecoder.messageProperties2String(properties)); if (uniqueKey == null) { uniqueKey = ""; } mqtraceContext.setMsgUniqueKey(uniqueKey); return mqtraceContext; }
byteBuffer.get(properties); String propertiesString = new String(properties, CHARSET_UTF8); Map<String, String> map = string2messageProperties(propertiesString); msgExt.setProperties(map); String msgId = createMessageId(byteBufferMsgId, msgExt.getStoreHostBytes(), msgExt.getCommitLogOffset()); msgExt.setMsgId(msgId);
@Override public MessageExt viewMessage(String topic, String uniqKey) throws RemotingException, MQBrokerException, InterruptedException, MQClientException { try { MessageDecoder.decodeMessageId(uniqKey); return this.viewMessage(uniqKey); } catch (Exception e) { // Ignore } return this.defaultMQPullConsumerImpl.queryMessageByUniqKey(topic, uniqKey); }