gpt4 book ai didi

apache-kafka - Kafka 消息标题是放置事件类型名称的正确位置吗?

转载 作者:行者123 更新时间:2023-12-04 17:39:13 28 4
gpt4 key购买 nike

在为单个主题生成多个单域事件类型并且消费者仅使用事件类型的子集的情况下,我需要一种在采取行动之前读取事件类型的好方法。
我看到两个选项:

  • 将事件类型(例如“ORDER_PUBLISHED”)放入消息正文(有效负载)本身,这将类似于代理不可知的方法并具有其他优点。但是将涉及解析每条消息只是为了知道事件类型。
  • 利用 Kafka 消息头,这将允许在没有额外负载解析的情况下使用消息。

  • 上下文是事件溯源。小命令,小负载。没有巨大的 body 需要解析。 golang 。所有消息都是 protobuf。 gRPC。

    在这种情况下,典型的工作流程是什么。

    我试图用谷歌搜索这个话题,但在标题用例和良好实践方面没有找到太多。
    很高兴听到何时以及如何使用 Kafka 消息头以及何时不使用。

    最佳答案

    显然,对于适用于相同实体/聚合 ( reference ) 的不同事件类型,应该使用相同的主题。示例:BookingCreated、BookingConfirmed、BookingCancelled 等都应该转到同一个主题,以(原谅双关语)保证交付的顺序(在这种情况下,预订 ID 是消息键)。
    当消费者获得这些事件之一时,它需要识别事件类型,解析有效负载,并相应地路由到处理逻辑。 事件类型 是那条留言元数据允许这种识别。
    因此,我认为自定义 Kafka 消息头是指示事件类型的最佳位置。 我不孤独:

  • Felipe Dutra :“Kafka 允许您将元数据作为消息的 header 。因此,使用它来放置有关消息、版本、类型、correlationId 的信息。如果您有事件链,您还可以添加 opentracing 的correlationId”
  • GE ERP system有一个标有“事件类型”的标题,用于向 kafka 主题(例如“ProcessOrderEvent”)显示“发布的事件的类型”。
  • other solution在他们的 Kafka 集成中提到“每条消息中都包含带有事件类型的标题‘事件’”。

  • 标题是 Kafka 中的新内容。此外,据我所知,Kafka 书籍侧重于 1.7 万个 Kafka 配置选项和 Kafka 拓扑。不幸的是,我们很难找到太多关于如何将事件驱动架构以正确的语义映射到 Kafka 消息代理的元素上的信息。

    关于apache-kafka - Kafka 消息标题是放置事件类型名称的正确位置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55303566/

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