Java Code Examples for org.apache.samza.system.SystemProducer#send()
The following examples show how to use
org.apache.samza.system.SystemProducer#send() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TranslationContext.java From beam with Apache License 2.0 | 6 votes |
/** The dummy stream created will only be used in Beam tests. */ private static InputDescriptor<OpMessage<String>, ?> createDummyStreamDescriptor(String id) { final GenericSystemDescriptor dummySystem = new GenericSystemDescriptor(id, InMemorySystemFactory.class.getName()); final GenericInputDescriptor<OpMessage<String>> dummyInput = dummySystem.getInputDescriptor(id, new NoOpSerde<>()); dummyInput.withOffsetDefault(SystemStreamMetadata.OffsetType.OLDEST); final Config config = new MapConfig(dummyInput.toConfig(), dummySystem.toConfig()); final SystemFactory factory = new InMemorySystemFactory(); final StreamSpec dummyStreamSpec = new StreamSpec(id, id, id, 1); factory.getAdmin(id, config).createStream(dummyStreamSpec); final SystemProducer producer = factory.getProducer(id, config, null); final SystemStream sysStream = new SystemStream(id, id); final Consumer<Object> sendFn = (msg) -> { producer.send(id, new OutgoingMessageEnvelope(sysStream, 0, null, msg)); }; final WindowedValue<String> windowedValue = WindowedValue.timestampedValueInGlobalWindow("dummy", new Instant()); sendFn.accept(OpMessage.ofElement(windowedValue)); sendFn.accept(new WatermarkMessage(BoundedWindow.TIMESTAMP_MAX_VALUE.getMillis())); sendFn.accept(new EndOfStreamMessage(null)); return dummyInput; }
Example 2
Source File: TestInMemorySystem.java From samza with Apache License 2.0 | 6 votes |
@Test public void testNullMessageWithValidMessageKey() { final String messageKey = "validKey"; SystemProducer systemProducer = systemFactory.getProducer(SYSTEM_NAME, config, mockRegistry); systemProducer.send(SOURCE, new OutgoingMessageEnvelope(SYSTEM_STREAM, messageKey, null)); SystemConsumer consumer = systemFactory.getConsumer(SYSTEM_NAME, config, mockRegistry); Set<SystemStreamPartition> sspsToPoll = IntStream.range(0, PARTITION_COUNT) .mapToObj(partition -> new SystemStreamPartition(SYSTEM_STREAM, new Partition(partition))) .collect(Collectors.toSet()); // register the consumer for ssps for (SystemStreamPartition ssp : sspsToPoll) { consumer.register(ssp, "0"); } List<IncomingMessageEnvelope> results = consumeRawMessages(consumer, sspsToPoll); assertEquals(1, results.size()); assertEquals(results.get(0).getKey(), messageKey); assertNull(results.get(0).getMessage()); }
Example 3
Source File: SystemProducerBench.java From samza with Apache License 2.0 | 5 votes |
public void start() throws IOException, InterruptedException { super.start(); String source = "SystemProducerBench"; int size = Integer.parseInt(cmd.getOptionValue(OPT_SHORT_MESSAGE_SIZE)); RandomValueGenerator randGenerator = new RandomValueGenerator(System.currentTimeMillis()); value = randGenerator.getNextString(size, size).getBytes(); NoOpMetricsRegistry metricsRegistry = new NoOpMetricsRegistry(); List<SystemStreamPartition> ssps = createSSPs(systemName, physicalStreamName, startPartition, endPartition); SystemProducer producer = factory.getProducer(systemName, config, metricsRegistry); producer.register(source); producer.start(); System.out.println("starting production at " + Instant.now()); Instant startTime = Instant.now(); for (int index = 0; index < totalEvents; index++) { SystemStreamPartition ssp = ssps.get(index % ssps.size()); OutgoingMessageEnvelope messageEnvelope = createMessageEnvelope(ssp, index); producer.send(source, messageEnvelope); } System.out.println("Ending production at " + Instant.now()); System.out.println(String.format("Event Rate is %s Messages/Sec", totalEvents * 1000 / Duration.between(startTime, Instant.now()).toMillis())); producer.flush(source); System.out.println("Ending flush at " + Instant.now()); System.out.println(String.format("Event Rate with flush is %s Messages/Sec", totalEvents * 1000 / Duration.between(startTime, Instant.now()).toMillis())); producer.stop(); System.exit(0); }
Example 4
Source File: TestInMemorySystem.java From samza with Apache License 2.0 | 4 votes |
@Test(expected = NullPointerException.class) public void testNullMessageWithNullKey() { SystemProducer systemProducer = systemFactory.getProducer(SYSTEM_NAME, config, mockRegistry); systemProducer.send(SOURCE, new OutgoingMessageEnvelope(SYSTEM_STREAM, null)); }