【问题标题】:max.request.size Kafka in KubernetesKubernetes 中的 max.request.size Kafka
【发布时间】:2019-03-10 18:56:33
【问题描述】:

我正在尝试将 max.request.size 提供给 kubernetes 中的 Kafka,它似乎不起作用。该怎么做?

我也尝试了KAFKA_MAX_REQUEST_SIZE 再次没有积极的结果:

  spec:
  containers:
  - name: kafka
    image: wurstmeister/kafka
    ...

    env:
    - name: KAFKA_ZOOKEEPER_CONNECT
      value: "zookeeper:2181"
    - name: KAFKA_ADVERTISED_PORT
      value: "9092"
    - name: KAFKA_DELETE_TOPIC_ENABLE
      value: "true"
    - name: KAFKA_CREATE_TOPICS
      value: "tpinput:1:1,tpoutput:1:1,operinput:1:1,operoutput:1:1,authoutput:1:1"  
    - name: KAFKA_JMX_PORT
      value: "7071"             
    - name: KAFKA_ZOOKEEPER_TIMEOUT_MS
      value: "16000"
    - name: KAFKA_MESSAGE_MAX_BYTES
      value: "209715200"
    - name: KAFKA_FETCH_MESSAGE_MAX_BYTES
      value: "209715200"  
    - name: KAFKA_REPLICA_FETCH_MAX_BYTES
      value: "209715200" 
    - name: KAFKA_PRODUCER_MAX_REQUEST_SIZE
      value: "9651322321"
    - name: KAFKA_ADVERTISED_HOST_NAME
      valueFrom:
        fieldRef:
          fieldPath: status.podIP        
    - name: KUBE_POD_NAME
      valueFrom:
        fieldRef:
          fieldPath: metadata.name
    imagePullPolicy: Always
    restartPolicy: Always
    envFrom:
    - configMapRef:
        name: env-config-for-pods

【问题讨论】:

  • 我不知道 wurstmeister 图像,但这应该适用于 Confluent 图像。注意:Confluent Helm Charts 也可能有所帮助

标签: kubernetes apache-kafka


【解决方案1】:

基于 Docker 入口点脚本 here 和该文件中的这一部分:

EXCLUSIONS="|KAFKA_VERSION|KAFKA_HOME|KAFKA_DEBUG|KAFKA_GC_LOG_OPTS|KAFKA_HEAP_OPTS|KAFKA_JMX_OPTS|KAFKA_JVM_PERFORMANCE_OPTS|KAFKA_LOG|KAFKA_OPTS|"

# Read in env as a new-line separated array. This handles the case of env variables have spaces and/or carriage returns. See #313
IFS=$'\n'
for VAR in $(env)
do
    env_var=$(echo "$VAR" | cut -d= -f1)
    if [[ "$EXCLUSIONS" = *"|$env_var|"* ]]; then
        echo "Excluding $env_var from broker config"
        continue
    fi

    if [[ $env_var =~ ^KAFKA_ ]]; then
        kafka_name=$(echo "$env_var" | cut -d_ -f2- | tr '[:upper:]' '[:lower:]' | tr _ .)
        updateConfig "$kafka_name" "${!env_var}" "$KAFKA_HOME/config/server.properties"
    fi

    if [[ $env_var =~ ^LOG4J_ ]]; then
        log4j_name=$(echo "$env_var" | tr '[:upper:]' '[:lower:]' | tr _ .)
        updateConfig "$log4j_name" "${!env_var}" "$KAFKA_HOME/config/log4j.properties"
    fi
done

KAFKA_MAX_REQUEST_SIZE 应作为max.request.size 包含在$KAFKA_HOME/config/server.properties 文件中。如果 docker 映像中有错误,我不会感到惊讶。

您始终可以进入您的 Kafka pod 并检查 $KAFKA_HOME/config/server.properties 配置文件。

kubectl exec -it <kafka-pod> -c <kafka-container> sh

【讨论】:

    猜你喜欢
    • 2020-11-15
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 2023-03-09
    • 2018-01-16
    • 2015-11-15
    相关资源
    最近更新 更多