正如 David 还提到的,您可以使用 KafkaProducer API 在简单的 Java 中创建一个虚拟生产者,以根据需要安排消息并将消息发送到 Kafka。同样,如果您想要多个同时生产者,您可以使用 Flink 来做到这一点。使用 Flink,您需要为生产者和消费者编写单独的作业。Kafka 基本上启用了异步处理架构,因此它没有队列机制。所以最好把生产者和消费者的工作分开。
但请多考虑一下这个测试的意图:
您是否正在尝试测试 Kafka 流式传输的持久性、复制、偏移管理功能
在这种情况下,您需要同一主题的同时生产者,消息中的键为空或非空。
或者您是否正在尝试测试 Flink-Kafka 连接器功能。
在这种情况下,你只需要一个生产者,很少有内部场景可以通过让生产者推送超过消费者处理能力的消息来进行背压测试。
或者您是否正在尝试测试主题分区和 Flink 流并行性。
在这种情况下,单个或多个生产者但消息的 key 应该是非空的,您可以测试 Flink 执行器如何与各个分区连接并观察它们的行为。
您可能想要测试更多想法,并且每个想法都需要在生产者中完成或不完成某些特定的事情。
如果需要,您可以查看https://github.com/abhisheknegi/twitStream使用 Java API 提取推文。