我尝试生成流数据,以模拟我收到两个值的情况,Integer类型,在不同的时间范围内,带有时间戳,Kafka作为连接器。
我使用Flink环境作为消费者,但我不知道哪个是生产者的最佳解决方案。(如果可能,Java语法优于Scala)
我应该直接从Kafka生成数据吗?如果是,那么最好的方法是什么?或者如果我从Flink作为制作人生成数据,将其发送给Kafka并在Flink最后再次使用它可能会更好?我怎么能从flink那里做到这一点?或许还有另一种简单的方法来生成流数据并将其传递给Kafka。
可以使用KafkaProducer API在简单的Java中创建一个虚拟生成器,以根据您的意愿安排和发送消息给Kafka。同样,如果你想要多个同步生产者,你可以用Flink做到这一点。使用Flink,您需要为生产者和消费者编写单独的工作。Kafka基本上启用了ASync处理体系结构,因此它没有队列机制。因此,最好将生产者和消费者工作分开。
但是想一想这个测试的意图:
您是否正在尝试测试Kafka流式传输耐久性,复制,偏移管理功能
在这种情况下,您需要同一主题的同时生成器,在消息中使用null或非null键。
或者您是否正在尝试测试Flink-Kafka连接器功能。
在这种情况下,您只需要一个生产者,很少有内部场景可以通过让生产者推送比消费者可以处理的更多消息来进行背压测试。
或者您是否正在尝试测试主题分区和Flink流并行性。
在这种情况下,单个或多个生成器但消息的键应为非null,您可以测试Flink执行程序如何与各个分区连接并观察它们的行为。
您可能想要测试更多的想法,并且每个想法都需要在生产者中完成特定的事情或者不需要完成。
https://github.com/abhisheknegi/twitStream在需要的情况下,您可以使用Java API 检查推送推文。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。