我有一个带有2个分区的源主题,我正在用相同的application.id启动2个kafka streams应用程序,但接收主题不同。1) 这两个应用程序示例是否从不同的分区接收数据?2) 如果其中一个应用程序被终止,另一个示例是否会自动从这两个示例中使用?3) 我如何证明上述情况?
disho6za1#
kafka streams使用相同的使用者库,因此行为应该与您描述的相匹配—如果您有两个应用程序,则每个应用程序都将使用分配给它的分区,如果一个应用程序被终止,则活动应用程序将处理来自所有分区的数据。。。例如,可以通过运行应用程序来证明这一点—在最简单的情况下,只需为消耗的数据打印不同的前缀,并提交键控值,这样您就可以区分一条消息何时发送到一个分区,何时发送到另一个分区。。。
bxgwgixi2#
1) 这两个应用程序示例是否从不同的分区接收数据?对。2) 如果其中一个应用程序被终止,另一个示例是否会自动从这两个示例中使用?是的(但请记住,另一个示例现在可能会将输出数据发送到自己的示例,而不是原始示例的输出主题。)3) 我如何证明上述情况?您可以检查应用程序的日志(kafka streams将记录关于每个示例的主题/分区/流任务的信息),您可以运行集成测试等。
2条答案
按热度按时间disho6za1#
kafka streams使用相同的使用者库,因此行为应该与您描述的相匹配—如果您有两个应用程序,则每个应用程序都将使用分配给它的分区,如果一个应用程序被终止,则活动应用程序将处理来自所有分区的数据。。。
例如,可以通过运行应用程序来证明这一点—在最简单的情况下,只需为消耗的数据打印不同的前缀,并提交键控值,这样您就可以区分一条消息何时发送到一个分区,何时发送到另一个分区。。。
bxgwgixi2#
1) 这两个应用程序示例是否从不同的分区接收数据?
对。
2) 如果其中一个应用程序被终止,另一个示例是否会自动从这两个示例中使用?
是的(但请记住,另一个示例现在可能会将输出数据发送到自己的示例,而不是原始示例的输出主题。)
3) 我如何证明上述情况?
您可以检查应用程序的日志(kafka streams将记录关于每个示例的主题/分区/流任务的信息),您可以运行集成测试等。