gpt4 book ai didi

java - Lagom 使用 Kafka 发布消息

转载 作者:行者123 更新时间:2023-12-02 11:55:30 27 4
gpt4 key购买 nike

仅描述了一种发布方式 here 。还有别的办法吗?我需要在没有 persistentEntityRegistry 的情况下创建具有动态主题 id 和自定义事件的发布的示例?如何使用 eventId 发布事件?

 @Override
default Descriptor descriptor() {
return named("helloservice").withCalls(
pathCall("/api/hello/:id", this::hello),
pathCall("/api/event/:id", this::pushEventWithId) // id - eventId
)
.withTopics(
topic(GREETINGS_TOPIC, this::greetingsTopic)
)
.withAutoAcl(true);
}

处理请求。

public ServiceCall<RequestMessage, NotUsed> pushEventWithId(String eventId) {
return message -> {
// Here I need push this message to kafka with eventId. Another service should be subscribed on this eventId

}
}

Lagom版本:1.3.10

最佳答案

目前不支持此功能。你可以直接自己实例化Kafka客户端(这并不难),这样就可以强制发布消息了。

虽然将来会添加对强制发布消息的支持,但 Lagom 尚未添加支持的一个原因是,很多时候,当人们想要这样做时,他们实际上是在系统中引入了反模式,例如不一致的机会。例如,如果您有更新某个数据库的服务,然后向 Kafka 发布一条消息,那么您就会遇到问题,因为如果数据库更新成功,但消息发布失败,则不会获得该更新,并且您的系统将处于不一致的状态。什么this presentation详细了解为什么这是一个问题,以及如何从事件日志中发布事件来解决该问题。

关于java - Lagom 使用 Kafka 发布消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com