private void assertMsg(Message msg) { assertNotNull(msg); assertEquals(9999L, msg.getId()); assertEquals("test", msg.getTopic()); assertFalse(msg.hasAttribute()); assertEquals(0, MessageAccessor.getFlag(msg)); assertEquals("hello", new String(msg.getData())); }
/** * 将消息属性和消息payload打包,结构如下:</br></br> 0或者1个定长attribute + payload * * @param message * @return */ public static final byte[] encodePayload(final Message message) { final byte[] payload = message.getData(); final String attribute = message.getAttribute(); byte[] attrData = null; if (attribute != null) { attrData = ByteUtils.getBytes(attribute); } else { return payload; } final int attrLen = attrData == null ? 0 : attrData.length; final ByteBuffer buffer = ByteBuffer.allocate(4 + attrLen + payload.length); if (attribute != null) { buffer.putInt(attrLen); if (attrData != null) { buffer.put(attrData); } } buffer.put(payload); return buffer.array(); }
public void persistent(Message message) { List<Span> spanList; try { spanList = (List) PB.parsePBBytes(message.getData()); } catch (Exception e) { log.error(e.getMessage()); return; } try { if (spanList != null) { for (Span s : spanList) { insertService.addSpan(s); insertService.addAnnotation(s); insertService.addTrace(s); } } } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage()); } }