小编Nag*_*Nag的帖子

Kafka - min.insync.replicas 解释

我正在浏览文档,查看多个地方,这增加了混乱..

关于属性 min.insync.replicas

当生产者将 acks 设置为“全部”(或“-1”)时,此配置指定必须确认写入才能将写入视为成功的最小副本数。如果无法满足此最小值,则生产者将引发异常(NotEnoughReplicas 或 NotEnoughReplicasAfterAppend)。当一起使用时,min.insync.replicas 和 acks 允许您强制执行更大的持久性保证。一个典型的场景是创建一个复制因子为 3 的主题,将 min.insync.replicas 设置为 2,并使用“all”的 acks 进行生产。如果大多数副本没有收到写入,这将确保生产者引发异常。

我提出的问题,

  1. 此属性仅在作为“发送记录”(生产者)的一部分与“确认”一起使用时才有意义,还是作为消费者流的一部分也有任何影响?
  2. 如果 acks=all 和 min.insync.replicas = 1(default value :1 ) --> 与 acks = 1 一样吗?(考虑复制因子 3 ?

更新 #1 我遇到了这个短语

“当生产者指定 ack (-1 / all config) 时,它仍然会等待当时所有同步副本的 ack(独立于最小同步副本的设置)。因此,如果您在 4 个副本同步时发布那么除非所有 4 个副本都提交消息(即使最小同步副本配置为 2),否则您将不会收到确认。”

这句话是如何与今天相关的?这个属性“最小同步副本”是否仍然独立?

apache-kafka confluent-platform

6
推荐指数
1
解决办法
3625
查看次数

Kubernetes - 什么是命令式和声明式

对于 Kubernetes 的命令式与声明式,我看到了多种不同的解释——比如命令式意味着当我们使用 yaml 文件来创建资源来描述状态,反之亦然。

这两者之间真正而明显的区别是什么。如果您可以将这组命令归入同一组,我将不胜感激-例如在命令式方式下创建等等..

kubernetes

5
推荐指数
2
解决办法
2945
查看次数

哪个发行版 CDH 与 HDP

我碰巧在 CDH 工作了很长时间(大约 1 年),现在打算重新开始。现在我们有 CDH、HDP 和 Hortonwork 被 Cloudera 收购。

  1. HDP 是否正在积极开发中?还是CDH正在积极开发?
  2. 我应该从哪个发行版开始?

cloudera hortonworks-data-platform cloudera-cdh cloudera-quickstart-vm hortonworks-sandbox

5
推荐指数
1
解决办法
1621
查看次数

卡夫卡排序保证

我正在浏览kafka文档并遇到了

保证

在高层次上,Kafka 提供了以下保证:

生产者发送到特定主题分区的消息将按发送顺序附加。也就是说,如果记录 M1 与记录 M2 由同一生产者发送,并且 M1 先发送,则 M1 的偏移量将低于 M2,并在日志中出现更早。消费者实例按照记录在日志中的存储顺序查看记录。对于复制因子为 N 的主题,我们最多可以容忍 N-1 个服务器故障,而不会丢失提交到日志的任何记录。

我有几个问题。

  1. 是否总是保证M1将具有比 更低的偏移量M2?如果M1重试晚于M2?
  2. 我也从各种文档中了解到,订购是不保证的,消费者必须自己处理。

apache-kafka kafka-producer-api

4
推荐指数
2
解决办法
3415
查看次数

Docker - 容器无法连接到网络端点

通过附加到网络接口 test-net, sample-net,bridge0 运行容器时,我收到以下错误。我的要求是有一个容器可以连接到不同网络中的不同容器。

    docker network create --driver bridge sample-net
    docker container run --name c3 -d --network test-net alpine:latest ping 127.0.0.1
    docker network create --driver bridge --subnet "10.1.0.0/16" test-net
    docker container run --name c4 -d --network test-net alpine:latest ping 127.0.0.1

    docker container run --name c1 -it --rm alpine:latest sh
    docker container run --name c5 -d --network sample-net --network test-net --network docker0 alpine:latest ping 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

我的目的是通过连接到所有其他容器的接口将“c5”连接到它们的接口。但是,我在执行命令时遇到了错误

docker container run --name c5 -d --network sample-net --network test-net --network docker0 alpine:latest ping 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

docker

4
推荐指数
1
解决办法
3917
查看次数

Apache Kafka - 没有密钥的消息

在阅读卡夫卡权威指南时,我遇到了这句话

当key为空并且使用默认分区器时,记录将被随机发送到主题的可用分区之一。将使用循环算法来平衡分区之间的消息。

这是否意味着这仅适用于使用默认分区程序

apache-kafka kafka-producer-api

4
推荐指数
1
解决办法
5388
查看次数

弹性搜索 - 节点故障

正如我从文档中了解到的,当一个节点出现故障时,弹性搜索会自动在所有其他节点上创建主分片或副本分片以解决该节点的故障。

但是,如果节点出现会发生什么情况——当机器出现时,在其他节点上创建的那些分片是否会“自动”删除——例如,在具有3 个节点的集群,节点 1 包含索引 1 的1 个主分片,还有一个索引 2 的副本分片。如果节点 1 宕机,ES会在任一可用节点中自动创建主分片、副本分片

elasticsearch

3
推荐指数
1
解决办法
426
查看次数

Kafka - max.in.flight.requests.per.connection 是每个生产者或会话?

我正在浏览文档,对参数“max.in.flight.requests.per.connection”有点困惑

客户端在阻塞之前在单个连接上发送的未确认请求的最大数量。请注意,如果此设置设置为大于 1 并且存在发送失败的情况,则存在由于重试而导致消息重新排序的风险(即,如果启用了重试)。

短语“未确认的请求”是指每个生产者或每个连接或每个客户端?

apache-kafka confluent-platform

3
推荐指数
1
解决办法
3331
查看次数

Elastic Search - 滚动行为

我遇到了至少两种可能的方法来批量获取结果。

  1. 滚动API

  2. 分页 - From 、 Size 参数

根本的区别是什么?我假设#1 允许滚动记录,而#2 允许您一次获取一批记录。如果我只是使用不同的 From 、 Size 参数来驱动分页,是否有可能在不同批次中返回相同的记录?

elasticsearch

3
推荐指数
1
解决办法
2万
查看次数

Kafka - 故障排除.NotEnoughReplicasException

我开始看到以下错误

[2020-06-12 20:09:01,324] ERROR [ReplicaManager broker=3] Error processing append operation on partition __consumer_offsets-10 (kafka.server.ReplicaManager)
org.apache.kafka.common.errors.NotEnoughReplicasException: The size of the current ISR Set(3) is insufficient to satisfy the min.isr requirement of 2 for partition __consumer_offsets-10    
Run Code Online (Sandbox Code Playgroud)

我的设置是拥有三个经纪人,并且所有经纪人都已上线。在出现此错误之前我做了几件事

我在所有代理中将 min.isr 配置为 2。我创建了一个复制因子为 3 的主题,并开始从 ack = 1 且两个代理关闭的生产者生成消息。我召集了所有经纪人并开始消费。

  1. 如何解决此错误
  2. 消费者也无法看到此消息(不知道为什么,该消息应该被视为“已提交”,因为当生产者运行时一个代理已启动)

几个事实

有趣的是,WRT 首选的领导者战略并未发生重新平衡

$ kafka-topics --zookeeper 127.0.0.1:2181 --topic stock-prices --describe                             
  Topic: stock-prices     PartitionCount: 3       ReplicationFactor: 3    Configs: min.insync.replicas=2
  Topic: stock-prices     Partition: 0    Leader: 1       Replicas: 1,3,2 Isr: 1,2,3            
  Topic: stock-prices     Partition: 1 …
Run Code Online (Sandbox Code Playgroud)

apache-kafka confluent-platform

2
推荐指数
1
解决办法
1万
查看次数

Java 符号 - Printed.<String, String>toSysOut().withLabel("source-stream")

我很了解 Java,但是,前段时间使用过它。我遇到了一些新的东西,比如

打印。<String, String>toSysOut() .withLabel("source-stream")

Esp,突出显示部分,似乎 <String, String> 是 toSysOut() 的返回类型。大多数时候,我看到诸如

Printed.toSysOut().withLabel("source-stream")

什么样的表示法是,返回类型与引用运算符 (.)

java generics

2
推荐指数
1
解决办法
73
查看次数

NotEnoughReplicasException: 当前 ISR Set(2) 的大小不足以满足 min.isr 要求 3

我有以下设置 Brokers : 3 - 所有都启动并运行 min.insync.replicas=3。

我用以下配置创建了一个主题

bin\windows\kafka-topics --zookeeper 127.0.0.1:2181 --topic topic-ack-all --create --partitions 4 --replication-factor 3

我用“ack = all”触发了生产者,生产者能够发送消息。但是,当我启动消费者时问题就开始了

bin\windows\kafka-console-consumer --bootstrap-server localhost:9094,localhost:9092 --topic topic-ack-all --from-beginning

错误是

NotEnoughReplicasException: 当前 ISR Set(2) 的大小不足以满足 3 的 min.isr 要求 NotEnoughReplicasException: 当前 ISR Set(3) 的大小不足以满足分区 __con 的 min.isr 要求 3

我在这里看到两种错误。我浏览了文档,也对“min.isr”有所了解,但是,这些错误消息并不清楚。

  1. 当前 ISR 集是什么意思?每个主题是否不同,它的含义是什么?
  2. 我猜 min.isr 与 min.insync.replicas 相同。我希望应该具有至少与“复制因子”相同的价值?

更新 #1

Topic: topic-ack-all    PartitionCount: 4       ReplicationFactor: 3    Configs:            
        Topic: topic-ack-all    Partition: 0    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3  
        Topic: topic-ack-all    Partition: 1    Leader: …
Run Code Online (Sandbox Code Playgroud)

apache-kafka confluent-platform

1
推荐指数
1
解决办法
3013
查看次数