当前位置: 首页 > 知识库问答 >
问题:

Kafka Connect确保订购

公冶浩慨
2023-03-14

我想使用Mongo变更流,使用kafka Connect将变更事件从mongoDB推送到kafka Topic中。好消息是:

>

  • Kafka在分区内维持排序。

    Mongo使用全局时钟维护排序

    但是,中间呢?kafka connect怎么样?它维持订购吗?这种订购是如何运作的?我找不到他们说Kafka维持秩序的地方。

    这是一个场景:

    • 在Mongo中-更新用户Bob以获得授权
    • 在Mongo中-将用户bob角色更新为未经授权

    然后,假设我有网络延迟,并且我的kafka connect是kafka connection-Mongo Source(多个实例)的集群,那么这种情况会发生吗(排序问题):

    >

  • 已获取将bob更新为未授权的事件

    有活动更新鲍勃到授权

    或者,如果Mongo更改流与kafka连接同步(以某种方式),并且上述情况永远不会发生,或者,kafka连接的“产生到kafka”阶段-Mongo Source可能会由于网络延迟而不同步,kafka可能会先保存未授权,然后保存授权消息。

    注意,我说这一切都可能发生,因为kafka connect - Mongo Source不只是一个实例,它可以作为一个集群工作。并且他们在文档中没有说任何事情来确保kafka中的顺序与mongodb变更流中产生的顺序相同。

  • 共有1个答案

    祁奇略
    2023-03-14

    如果您保持事件的确定性生产(不是循环分区分配策略)

    并且还设置

    {
    "producer.override.max.in.flight.requests.per.connection": "1"
    }
    

    然后生产订单将被保留。

     类似资料:
    • 问题内容: 鉴于我有一个字符串列表。结果必须按照原始行的顺序排列。我想利用新的并行流。 以下代码是否 保证 结果的顺序与原始列表中的顺序相同? 问题答案: TL; DR 是的,订单得到保证。 Stream.collect()API文档 出发点是看什么决定减少是否同时发生。的描述如下: 如果该流是并行的,并且是并发的,或者该流是无序的或收集器是无序的,那么将执行并发缩减(请参阅有关并发缩减的详细信息

    • 请求地址 http://api.dc78.cn/Api/do_confirm 请求方式 POST 请求参数 GET参数 参数名称 必填 描述 范例 id 订单号 state 状态 2->下单成功,-1->下单失败 ,6->订单已配送,10->订单已完成(6,10只针对外卖订单) bzid 业务单号 作为关联备查 table 桌台号 (可选),用于在外卖等场景下使用默认桌台号情况下,门店下单后返回一

    • 请求参数说明 参数 描述 必填 示例值 类型 最大长度 action 接口参数组 是 object └action 需要调用的接口名称 是 do_confirm string get GET参数组,本组参数需要参与签名 是 object └id 订单号 是 47302320 number └state 状态(2->下单成功,-1->下单失败 ,6->订单已配送,10->订单已完成(6,10只针对外

    • 我确实意识到Kafka中保证了每个分区的顺序。但是当有多个分区并且生产者没有指定键,而只有1个消费者时,分区会受到什么影响(为什么有1个消费者?对于当前数据加载1很好,有多个分区供将来使用) 1) 订购是否会受到影响? 2) 使用者是否会从分区0,1读取数据。。20一个接一个按顺序? 3) 即使我们指定了分区键,我们是否可以保证我们会进行适当的排序?(哈希冲突的情况除外)

    • 问题内容: 我是Elasticsearch的新手,但我非常喜欢。我唯一找不到也无法完成的事情是确保生产系统的Elasticsearch安全。我在elasticsearch之前阅读了很多有关使用nginx作为代理的信息,但是我从未使用过代理,也从未使用过代理。 这是在生产系统中确保elasticsearch的典型方法吗? 如果是这样,是否有任何教程或不错的读物可以帮助我实现此功能。我真的很想在我们的

    • 我已经安装了Visual Studio2013,当我运行我的应用程序时,我得到了下面的错误。 我不知道在哪里初始化这个对象。 怎么办? 这是给AlumCloud的