@Override public byte[] getData() { return msg.getData(); }
@Override public void updateNumMsgsReceived(Message<?> message) { if (message != null) { numMsgsReceived.increment(); numBytesReceived.add(message.getData().length); } }
protected void testPulsarFunctionality(String pulsarBrokerUrl) throws Exception { try ( PulsarClient client = PulsarClient.builder() .serviceUrl(pulsarBrokerUrl) .build(); Consumer consumer = client.newConsumer() .topic(TEST_TOPIC) .subscriptionName("test-subs") .subscribe(); Producer<byte[]> producer = client.newProducer() .topic(TEST_TOPIC) .create() ) { producer.send("test containers".getBytes()); CompletableFuture<Message> future = consumer.receiveAsync(); Message message = future.get(5, TimeUnit.SECONDS); assertThat(new String(message.getData())) .isEqualTo("test containers"); } }
@Override public byte[] getData() { return msg.getData(); }
@Override public void updateNumMsgsReceived(Message<?> message) { if (message != null) { numMsgsReceived.increment(); numBytesReceived.add(message.getData().length); } }
private T deserialize(Message message) throws IOException { return deserializer.deserialize(message.getData()); }
/** * Interprets the message to create a string representation * * @param message * The message to interpret * @param displayHex * Whether to display BytesMessages in hexdump style, ignored for simple text messages * @return String representation of the message */ private String interpretMessage(Message<byte[]> message, boolean displayHex) throws IOException { byte[] msgData = message.getData(); ByteArrayOutputStream out = new ByteArrayOutputStream(); if (!displayHex) { return new String(msgData); } else { HexDump.dump(msgData, 0, out, 0); return new String(out.toByteArray()); } }
bytesReceived.add(msg.getData().length);
@Override void run() throws PulsarAdminException { String persistentTopic = validatePersistentTopic(params); List<Message<byte[]>> messages = topics.peekMessages(persistentTopic, subName, numMessages); int position = 0; for (Message<byte[]> msg : messages) { if (++position != 1) { System.out.println("-------------------------------------------------------------------------\n"); } if (msg.getMessageId() instanceof BatchMessageIdImpl) { BatchMessageIdImpl msgId = (BatchMessageIdImpl) msg.getMessageId(); System.out.println("Batch Message ID: " + msgId.getLedgerId() + ":" + msgId.getEntryId() + ":" + msgId.getBatchIndex()); } else { MessageIdImpl msgId = (MessageIdImpl) msg.getMessageId(); System.out.println("Message ID: " + msgId.getLedgerId() + ":" + msgId.getEntryId()); } if (msg.getProperties().size() > 0) { System.out.println("Tenants:"); print(msg.getProperties()); } ByteBuf data = Unpooled.wrappedBuffer(msg.getData()); System.out.println(ByteBufUtil.prettyHexDump(data)); } } }
@Override void run() throws PulsarAdminException { String persistentTopic = validatePersistentTopic(params); List<Message<byte[]>> messages = persistentTopics.peekMessages(persistentTopic, subName, numMessages); int position = 0; for (Message<byte[]> msg : messages) { if (++position != 1) { System.out.println("-------------------------------------------------------------------------\n"); } if (msg.getMessageId() instanceof BatchMessageIdImpl) { BatchMessageIdImpl msgId = (BatchMessageIdImpl) msg.getMessageId(); System.out.println("Batch Message ID: " + msgId.getLedgerId() + ":" + msgId.getEntryId() + ":" + msgId.getBatchIndex()); } else { MessageIdImpl msgId = (MessageIdImpl) msg.getMessageId(); System.out.println("Message ID: " + msgId.getLedgerId() + ":" + msgId.getEntryId()); } if (msg.getProperties().size() > 0) { System.out.println("Tenants:"); print(msg.getProperties()); } ByteBuf data = Unpooled.wrappedBuffer(msg.getData()); System.out.println(ByteBufUtil.prettyHexDump(data)); } } }
bytesReceived.add(msg.getData().length);
@Override public CompletableFuture<BenchmarkConsumer> createConsumer(String topic, String subscriptionName, ConsumerCallback consumerCallback) { return client.newConsumer().subscriptionType(SubscriptionType.Failover).messageListener((consumer, msg) -> { consumerCallback.messageReceived(msg.getData(), msg.getPublishTime()); consumer.acknowledgeAsync(msg); }).topic(topic).subscriptionName(subscriptionName).subscribeAsync() .thenApply(consumer -> new PulsarBenchmarkConsumer(consumer)); }