如何在Lagom中向Kafka主题发布消息

时间:2019-09-16 05:50:21

标签: java apache-kafka lagom

我最近开始使用lagom。试用微服务,我会收到一条kafka消息,经过一些处理后,将另一条消息发布到另一个kafka主题。根据我的理解,link应该在已构建的主题上发布一条消息,尤其是我所指的示例代码的这一部分。

final PubSubRef<Temperature> topic = pubSub.refFor(TopicId.of(Temperature.class, id));
      topic.publish(temperature);

我无法将Temperature DTO构建为从其余客户端进行POST。因此,我在DTO上创建了与HelloEvent完全类似的DTO-在我的情况下是KafkaEvent。

我尝试使用here中的代码

但是,执行POST操作后,我没有看到创建的主题。我确实添加了打印语句,它们确实出现在控制台中。

 System.out.println("Received id:" + id);
   final PubSubRef<KafkaEvent> topic = pubSub.refFor(TopicId.of(KafkaEvent.class, id));
   topic.publish(temperature);
   System.out.println("Sent to:" + topic.toString());

我在kafka服务器日志或项目中没有看到任何错误。

我缺少任何步骤吗?还是我的理解在使用PubSubRegistry中是错误的?

如果需要更多详细信息,请告诉我。

预先感谢

Naveena

1 个答案:

答案 0 :(得分:1)

如果要使用Kafka,则使用的方法不正确。您描述的帖子不使用Kafka。它只是向所有订户广播消息。如果要使用Kafka,则需要使用message broker support,它将创建您想要的东西。请阅读limitations部分,它将为您提供泥潭信息。