기금넷 공식사이트 - 금 선물 - 카프카는 다음 중 어떤 기능을 보장할 수 없다.

카프카는 다음 중 어떤 기능을 보장할 수 없다.

Kafka 워크플로우

1. 보통 먼저 테마를 만듭니다. 예를 들어 TopicA 에는 세 개의 파티션과 두 개의 복제본 (leader+follower) 이 있습니다. 같은 파티션의 복제본 두 개가 같은 서버에 있지 않아야 합니다.

2.Kafka 워크플로우 기본 요약: 1) Broker: Broker 는 Kafka 의 노드를 나타냅니다. 브로커는 분산되고 서로 독립적이다. 시작 시 Zookeeper 에 등록하면 프록시 서버 목록을 특별히 기록하는 노드가 zookeeper 에 있습니다: /brokers/ids.

3. 프로세스 설명: 사용자가 먼저 보낼 메시지 객체 ProducerRecord 를 구성한 다음 KafkaProducer#send 메소드를 호출하여 보냅니다.

4. 카프카의 작업 과정은 카프카에 있는데, 메시지는 주제별로 분류되어 있고, 생산자는 뉴스를 생산하고, 소비자는 소식을 소비하고, 읽고 소비하는 것은 같은 주제이다.

5. 다른 미들웨어와 마찬가지로 Kafka 는 데이터를 보낼 때마다 Leader 파티션으로 전송하여 순차적으로 디스크에 씁니다. 그러면 주 파티션이 데이터를 각 슬레이브 파티션의 슬레이브 파티션으로 동기화합니다. 기본 파티션이 일시 중지되더라도 서비스의 정상적인 작동에 영향을 주지 않습니다.

카프카식 분할

앞의 예 (Kafka producer- Kafka 에 데이터 쓰기) 에서 ProducerRecord 객체에는 대상 주제, 키 및 값이 포함되어 있습니다.

첫 번째 단계: 모든 주제 파티션을 topicanpartition 목록으로 만든 다음 hashCode 에 따라 topicanpartition 목록을 정렬하고 마지막으로 폴링을 통해 각 소비자 스레드로 보냅니다.

Kafka 에서 각 주제에는 여러 파티션이 포함되어 있으며, 기본적으로 다음 파티션은 한 소비자 그룹 아래의 두 소비자만 소비할 수 있으므로 파티션 할당 문제가 발생합니다.

필요한 파티션이 많을수록 필요한 파일 핸들이 많아집니다. 운영 체제 매개변수를 구성하여 열려 있는 파일 핸들 수를 늘릴 수 있습니다.

결론적으로 카프카의 메시지 스토리지는 분할, LogSegment, 스파스 인덱스를 사용하여 효율성을 높였습니다.

Kafka 는 zookeeper 기반 조정을 지원하는 분산 메시징 시스템입니다.

Kafka 의 메시지 큐 (III) 일관성 및 문제 해결 정책

서버는 메시지를 처리할 때 전력 등을 필요로 하고, 메시지의 생산자와 수신인은 모두 전력 등을 필요로 한다. 발신자는 메시지 손실로 인한 트랜잭션 실행 중단을 방지하기 위해 처리되지 않은 메시지를 트래버스하고 다시 푸시하는 타이머를 추가해야 합니다.

높은 처리량: Kafka 는 처리량이 뛰어나 단일 노드 성능이 낮은 상용 클러스터에서도 초당 65438+ 백만 개의 메시지를 단일 노드로 전송할 수 있습니다. 내결함성이 높음: Kafka 는 다중 파티션 다중 복사본을 지원하도록 설계되었으며 내결함성이 뛰어납니다.

일관성을 보장하기 위해 생산자는 실패 후 재시도해야 하지만 재시도로 인해 메시지가 중복되는 문제가 발생할 수 있습니다. 한 가지 해결책은 각 메시지에 고유한 id 를 부여하고 서버의 사전 예방을 통해 메시지 중복 문제를 방지하는 것입니다. 그러나 이 메커니즘은 현재 Kafka 에서 구현되지 않았습니다.

이 시점에서 rahbitMQ 는 메시지를 즉시 삭제합니다. 이 경우 소비자가 예외 방식으로 메시지를 처리할 수 없는 경우 (그러나 메시지 대기열은 이미 메시지가 이미 사용 중인 것으로 간주됨) 메시지가 손실됩니다. 솔루션의 경우 메시지를 수동으로 확인하는 것으로 충분합니다.

Kafka 의 저장 메커니즘은 이 시점에서 생산자가 생성한 메시지를 로그 파일 끝에 추가하여 파일이 점점 커질 것입니다. 로그 파일이 너무 커서 데이터 위치 지정 효율성이 떨어지는 것을 방지하기 위해 Kafka 는 분할 인덱싱 메커니즘을 채택했습니다.

Kafka 는 고성능, 지속성, 다중 복제본 백업 및 스케일 아웃 기능을 갖춘 분산 메시지 대기열입니다. 생산자는 메시지를 대기열에 쓰고 소비자는 대기열에서 메시지를 꺼내 비즈니스 논리에 사용합니다. 일반적으로 아키텍처 설계에서 디커플링, 피크 깎기, 비동기 처리 역할을 합니다.

카프카의 원리는 무엇입니까?

1, Kafka 는 원래 LinkedIn 에서 개발된 메시지 시스템으로 LinkedIn 의 ActivityStream 및 operation 데이터 처리 파이프의 기초로 사용됩니다. 현재 많은 회사에서 다양한 유형의 데이터 파이프 및 메시징 시스템으로 사용되고 있습니다.

2.Kafka 의 복제 메커니즘은 여러 서버 노드가 다른 노드의 테마 파티션을 복제하는 로그입니다. 클러스터의 한 노드가 실패하면 실패한 노드에 대한 액세스 요청이 다른 정상 노드 (일반적으로 재조정이라고 함) 로 전송됩니다.

3.Kafka 는 전 세계적으로 고유한 번호를 사용하여 각 프록시 서버를 나타냅니다. 브로커마다 다른 브로커 id 로 등록해야 합니다. 노드가 생성되면 각 에이전트는 자체 IP 주소와 포트 정보를 노드에 기록합니다.

4.kafka 메시지의 정렬은 메시지 키 보존 정책을 통해 이루어집니다. 주제, 파티션, 소비자, 내부 단일 스레드 소비, n 개의 메모리 대기열 쓰기, n 개의 스레드가 각각 하나의 메모리 대기열을 소비합니다.

카프카 면접 질문

1, 카프카의 멱등성에 대한 당신의 이해에 대해 말씀해 주시겠습니까? 프로덕터의 멱등성이란 같은 메시지를 보낼 때 데이터가 서버측에서 한 번만 지속되고, 데이터가 손실되거나 무겁지 않지만, 여기서 멱등성은 조건부입니다. Kafka 는 0. 1 1 버전에 트랜잭션 지원을 도입했습니다.

2. 로드 밸런싱, Linux, MySQL, redis, Kafka, zabbix, k8s 등에서 리눅스 지식 포인트를 분해하는 리눅스 면접 문제에 대한 노트를 공유합니다. 누락된 개인 기술점을 적발하여 보충하는 데 쓰인다.

3, 대기업, 인프라 R&D 실력이 강하여 RocketMQ 를 사용하는 것이 좋은 선택이다. 빅 데이터 분야의 실시간 컴퓨팅 및 로그 수집 장면인 경우 Kafka 는 업계 표준이며, 전혀 문제가 없습니다. 지역사회 활동도가 높고, 절대 노랑이 아닙니다. 더욱이 전 세계에서 이 분야는 거의 정상적입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언)

4. 예를 들어, 당신이 MySQL, Jquery, bootstrap 을 잘 쓴다면, 우리는 이런 질문을 할 것이다. 물론 어렵지 않을 것이다. 단지 네가 정말로 알고 있다는 것을 증명할 뿐, 허풍을 떨고 있는 것이 아니다.

5. 여기에는 Dubbo, Apache 의 RPC 프레임워크와 같은 원격 서비스 프레임워크 미들웨어가 포함됩니다. 메시지 대기열 미들웨어 (예: 알리바바 오픈 소스 분산 미들웨어 RocketMQ, 처리량이 높은 메시지 게시 및 스트리밍 미디어 서비스 Kafka 등)

6. 카프카는 성능이 좋다는 것을 모두 알고 있지만, 그 이유를 진정으로 이해하는 사람은 비교적 적다. 이것도 슬픈 이야기이다. 나의 한 인터뷰는 이 주제에 대해 매우 멋지다. 카프카는 어떻게 디자인 관점에서 고성능을 얻을 수 있을까요? 카프카는 하드 드라이브에 정보를 써서 영원히 데이터를 잃지 않을 것이다.