Điểm:0

Nhật ký Kafka được đặt lại khi tất cả các nhà môi giới khởi động lại cùng một lúc

lá cờ cn

Tôi có một cụm kafka chạy trên cụm Kubernetes tích hợp với 3 nhà môi giới Kafka và 3 Người quản lý vườn thú, mỗi thành phần chạy trong một bộ trạng thái. Biểu đồ điều khiển mà tôi sử dụng để triển khai cụm là biểu đồ tùy chỉnh vì tôi cần quyền truy cập từ bên ngoài vào cụm thông qua BigIp F5 và không tìm thấy biểu đồ điều khiển thực hiện việc này.

Hình ảnh Kafka là hợp lưu/cp-kafka:5.4.0 và người quản lý vườn thú là hợp lưu/cp-zookeeper:5.4.0

/var/lib/zookeeper/data/var/lib/zookeeper/log cho Zookeeper được ánh xạ tới các tập liên tục. Tương tự cho /var/lib/kafka trên Kafka

Tôi sử dụng hlebalbau/kafka-manager:stable để xem trạng thái của cụm.

Tôi thiết lập ba phân vùng cho mỗi chủ đề và hệ số sao chép cũng bằng ba.

Gần đây tôi nhận ra rằng nếu tôi khởi động lại cả ba nhà môi giới kafka cùng một lúc (với kubectl xóa nhóm) tất cả nội dung chủ đề đã bị mất:

  • kích thước nhật ký giảm xuống 0 cho mỗi chủ đề
  • danh sách các chủ đề vẫn giữ nguyên
  • danh sách người tiêu dùng vẫn giữ nguyên, nhưng mỗi phần bù hiện tại của người tiêu dùng giảm xuống giá trị âm (nếu người tiêu dùng ở mức bù 10000 cho chủ đề tin nhắn 10000, thì kích thước chủ đề giảm xuống 0 và phần bù của người tiêu dùng thành -10000 )

Tôi chưa bao giờ gặp phải bất kỳ sự cố nào khi khởi động lại một nhà môi giới kafka tại một thời điểm và đợi nó bắt đầu trước khi khởi động lại một nhà môi giới khác. Tôi biết rằng một cụm kafka không có nghĩa là bị dừng hoặc khởi động lại như thế này. Nhưng tôi không mong đợi loại hành vi này.

Đó có phải là hành vi mong đợi không? Hay tôi đã bỏ lỡ một cái gì đó rõ ràng?

Đây là mẫu Yaml của tôi cho một nhà môi giới kafka. Như được chỉ ra bởi tên của nó, các chờ-zookeeper.sh kịch bản "chỉ" đợi những người trông coi vườn thú bắt đầu.

---
apiVersion: ứng dụng/v1
loại: StatefulSet
metadata:
  tên: kafka-bộ điều khiển-1
thông số kỹ thuật:
  bản sao: 1
  bộ chọn:
    trận đấuNhãn:
      ứng dụng: kafka-1
  tên dịch vụ: kafka1-không đầu
  mẫu:
    metadata:
      nhãn:
        ứng dụng: kafka-1
        cụm: kafka
    thông số kỹ thuật:
      initContainer:
        - tên: init-wait-zookeeper
          hình ảnh: bash: mới nhất
          lệnh: ["/usr/local/bin/bash","-c","cp /wait-zookeeper-configmap/wait-zookeeper.sh /wait-zookeeper-emptydir/ && chmod 755 /wait-zookeeper-emptydir/ wait-zookeeper.sh && /wait-zookeeper-emptydir/wait-zookeeper.sh"]
          khối lượngMount:
            - tên: wait-zookeeper-configmap
              mountPath: /wait-zookeeper-configmap
            - tên: wait-zookeeper-emptydir
              mountPath: /wait-zookeeper-emptydir
      sự giống nhau:
        podAntiAffinity:
          ưa thíchDuringSchedulingIgnoredDuringExecution:
          - trọng lượng: 100
            podAffinityTerm:
              nhãnSelector:
                matchExpressions:
                - phím: ứng dụng
                  nhà điều hành: Trong
                  giá trị:
                  - kafka-2
                  - kafka-3
                  {{- if gt .Values.workerNodesNumber 5.0 }}
                  - người quản lý vườn thú-1
                  - người quản lý vườn thú-2
                  - người quản lý vườn thú-3
                  {{- chấm dứt }}
              khóa cấu trúc liên kết: "kubernetes.io/hostname"
      hộp đựng:
        - tên: kafka1
          hình ảnh: hợp lưu/cp-kafka:5.4.0
          tài nguyên:
            yêu cầu:
              bộ nhớ: "512Mi"
            Hạn mức:
              bộ nhớ: "{{.Values.jvmMaxHeapSizeGb}}Gi"
          cổng:
          - Cảng container: 9092
          vi:
          - tên: HOST_IP
            giá trịTừ:
              trường Tham khảo:
                trườngPath: status.hostIP
          - tên: KAFKA_LISTENERS
            giá trị: "PLAINTEXT://0.0.0.0:9092"
          - tên: KAFKA_ADVERTISED_LISTENERS
            giá trị: "PLAINTEXT://$(HOST_IP):{{ add .Values.startingNodePort 0 }}"
          - tên: KAFKA_BROKER_ID
            giá trị: "10"
          - tên: KAFKA_ZOOKEEPER_CONNECT
            giá trị: "zookeeper-controller-1-0.zoo1-headless:2181,zookeeper-controller-2-0.zoo2-headless:2181,zookeeper-controller-3-0.zoo3-headless:2181"
          - tên: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
            giá trị: "3"
          - tên: KAFKA_DELETE_TOPIC_ENABLE
            giá trị: "đúng"
          - tên: KAFKA_DEFAULT_REPLICATION_FACTOR
            giá trị: "3"
          - tên: KAFKA_NUM_PARTITIONS
            giá trị: "{{.Values.defaultPartitionsNumber}}"
          - tên: KAFKA_LOG_RETENTION_HOURS
            giá trị: "{{.Values.retentionTimeHours}}"
          - tên: KAFKA_OFFSETS_RETENTION_MINUTES
            giá trị: "{{.Values.retentionTimeHours | mul 60 }}"
          - tên: JMX_PORT
            giá trị: "{{ thêm .Values.startingNodePort 3 }}"
          - tên: KAFKA_JMX_HOSTNAME
            giá trị: "kafka-dịch vụ-1"
          - tên: KAFKA_HEAP_OPTS
            giá trị: "-Xms512m -Xmx{{.Values.jvmMaxHeapSizeGb}}G"
          livenessProbe:
            người điều hành:
              chỉ huy:
              - /bin/bash
              - -c
              - "bỏ đặt JMX_PORT && kafka-broker-api-versions --bootstrap-server=localhost:9092"
            ban đầuDelaySeconds: 60
            chu kỳGiây: 20
          khối lượngMount:
            - tên: "kafka-nhật ký"
              mountPath: "/var/lib/kafka"
      khối lượng:
        - tên: "chờ-zookeeper-configmap"
          bản đồ cấu hình:
            tên: "trình khởi tạo kafka"
            mặt hàng:
              - khóa: "chờ-zookeeper.sh"
                đường dẫn: "chờ-zookeeper.sh"
        - tên: "chờ-người quản lý vườn thú-emptydir"
          Dir trống: {}
  volumeClainMẫu:
  - metadata:
      tên: kafka-log
    thông số kỹ thuật:
      storageClassName: {{.Values.storageClassName}}
      accessModes: ["ReadWriteOnce"]
      tài nguyên:
        yêu cầu:
          lưu trữ: {{.Values.storageSizeGb}}Gi
lá cờ ar
Bắt đầu ở đây. Nó thiết lập âm lượng cho bạn - https://strimzi.io

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.