카프카 노트: 테마, 구역 및 편향
목록의 간략한 연습
회상해 보자. 우리는
/usr/local/bin
에서 카프카 파일 디렉터리를 만들고 다운로드한 카프카 tarball의 추출 내용을 복사했다.Kafka 파일 디렉터리나 Kafka 프로그램은 원하는 디렉터리에서 실행할 수 있습니다.root:kafka_2.13-2.7.0 $ ls -l
total 56
drwxr-xr-x 3 root root 4096 Dec 16 2020 bin
drwxr-xr-x 2 root root 4096 Jun 23 15:05 config
drwxr-xr-x 4 root root 36 Jun 23 15:05 data
drwxr-xr-x 2 root root 8192 Jun 23 15:05 libs
-rw-r--r-- 1 root root 29975 Dec 16 2020 LICENSE
-rw-r--r-- 1 root root 337 Dec 16 2020 NOTICE
drwxr-xr-x 2 root root 44 Dec 16 2020 site-docs
웹 사이트의 문서는 온라인에서 사용할 수 있는 모든 문서의 보관을 포함한다.libs 폴더에는 Kafka 실행에 필요한 종속성이 포함되어 있습니다.
당신들은 도대체 조커와 클라이언트 라이브러리의 파일이 있는지 주의할 것입니다.카프카는 ZooKeeper를 미리 설치할 필요 없이 독립적으로 설치할 수 있습니다.
# Please note that some of the contents are omitted to shorten output
root:kafka_2.13-2.7.0 $ ls -l libs/
total 67052
-rw-r--r-- 1 root root 69409 May 28 2020 activation-1.1.1.jar
-rw-r--r-- 1 root root 27006 Jun 30 2020 aopalliance-repackaged-2.6.1.jar
-rw-r--r-- 1 root root 90347 May 28 2020 argparse4j-0.7.0.jar
-rw-r--r-- 1 root root 20437 Dec 20 2019 audience-annotations-0.5.0.jar
-rw-r--r-- 1 root root 53820 Dec 20 2019 commons-cli-1.4.jar
-rw-r--r-- 1 root root 501879 May 28 2020 commons-lang3-3.8.1.jar
-rw-r--r-- 1 root root 12211 Jan 22 2020 slf4j-log4j12-1.7.30.jar
-rw-r--r-- 1 root root 1945847 Oct 21 2020 snappy-java-1.1.7.7.jar
-rw-r--r-- 1 root root 991098 May 27 2020 zookeeper-3.5.8.jar
-rw-r--r-- 1 root root 250547 May 27 2020 zookeeper-jute-3.5.8.jar
-rw-r--r-- 1 root root 5355050 Aug 12 2020 zstd-jni-1.4.5-6.jar
프로필은 카프카의 모든 프로필을 포함합니다.여기서 서버를 볼 수 있습니다.재산Kafka 에이전트의 구성 파일입니다.root:kafka_2.13-2.7.0 $ ll config/
total 72
-rw-r--r-- 1 root root 906 Dec 16 2020 connect-console-sink.properties
-rw-r--r-- 1 root root 909 Dec 16 2020 connect-console-source.properties
-rw-r--r-- 1 root root 5321 Dec 16 2020 connect-distributed.properties
-rw-r--r-- 1 root root 883 Dec 16 2020 connect-file-sink.properties
-rw-r--r-- 1 root root 881 Dec 16 2020 connect-file-source.properties
-rw-r--r-- 1 root root 2247 Dec 16 2020 connect-log4j.properties
-rw-r--r-- 1 root root 2540 Dec 16 2020 connect-mirror-maker.properties
-rw-r--r-- 1 root root 2262 Dec 16 2020 connect-standalone.properties
-rw-r--r-- 1 root root 1221 Dec 16 2020 consumer.properties
-rw-r--r-- 1 root root 4674 Dec 16 2020 log4j.properties
-rw-r--r-- 1 root root 1925 Dec 16 2020 producer.properties
-rw-r--r-- 1 root root 6876 Jun 23 15:05 server.properties
-rw-r--r-- 1 root root 1032 Dec 16 2020 tools-log4j.properties
-rw-r--r-- 1 root root 1169 Dec 16 2020 trogdor.conf
-rw-r--r-- 1 root root 1237 Jun 23 15:05 zookeeper.properties
마지막으로, bin은 cna가 카프카드를 시작하고 실행하기 위해 실행하는 모든 프로그램을 포함합니다.# Please note that some of the contents are omitted to shorten output
root:kafka_2.13-2.7.0 $ ll bin/
total 144
-rwxr-xr-x 1 root root 1423 Dec 16 2020 connect-distributed.sh
-rwxr-xr-x 1 root root 1396 Dec 16 2020 connect-mirror-maker.sh
-rwxr-xr-x 1 root root 1420 Dec 16 2020 connect-standalone.sh
-rwxr-xr-x 1 root root 861 Dec 16 2020 kafka-acls.sh
-rwxr-xr-x 1 root root 958 Dec 16 2020 kafka-verifiable-producer.sh
-rwxr-xr-x 1 root root 1714 Dec 16 2020 trogdor.sh
drwxr-xr-x 2 root root 4096 Dec 16 2020 windows
-rwxr-xr-x 1 root root 867 Dec 16 2020 zookeeper-security-migration.sh
-rwxr-xr-x 1 root root 1393 Dec 16 2020 zookeeper-server-start.sh
-rwxr-xr-x 1 root root 1366 Dec 16 2020 zookeeper-server-stop.sh
-rwxr-xr-x 1 root root 1019 Dec 16 2020 zookeeper-shell.sh
이제 주요 화제로 들어간다
주제는 단지 전체 집단의 소식을 뛰어넘을 수 있는 논리적 집합일 뿐이다.
댓글에 뭐가 있어요?
카프카의 모든 메시지는 다음과 같습니다.
타임스탬프 - 프록시가 메시지를 받을 때 설정
고유 식별자 - 소비자가 정보를 참조하는 방법
바이너리 페이로드 - 데이터
왜 이 점이 중요합니까?만약 한 소비자가 메시지를 잘못 처리했다면, 이 고장은 같은 메시지를 처리하고 있는 다른 소비자에게 연결되거나 영향을 주어서는 안 된다.
한 소비자의 고장이 다른 소비자의 운영을 방해해서는 안 된다.모든 사람은 반드시 자신의 전속 경계가 있어야 한다
활동 소스
프로듀서가 주제에 메시지를 보낼 때 이 메시지는 시간 순서대로 추가됩니다.
변하지 않는 시간 순서 시퀀스에서 포착된 변경 사항을 통해 응용 프로그램의 상태를 유지하는 이런 체계 구조 스타일을 이벤트원이라고 부른다.
분구
위에서 말한 바와 같이 주제는 하나 이상의 구역이 있을 수 있다
예, 테마를 만들 때 구역을 지정해야 하지만, 언제든지 변경할 수 있습니다.
한 개의 구역을 사용해야 합니까? 아니면 여러 개의 구역을 사용해야 합니까?
단일 섹션 테마는 생산에도 사용할 수 있지만, 이것은 신축성과 흡수량을 제한한다.이것은 여러 대의 기계에서 하나의 구역을 간단하게 분할할 수 없기 때문이다.하나의 구역은 끊임없이 증가하는 주제를 유지할 수 없을 수도 있다.
여러 개의 구역에 대해 메시지를 보낼 구역을 선택할 수 있습니까?
키를 지정하지 않으면 데이터가 랜덤으로 구역에 분배됩니다.이것은 다음 장에서 토론할 것이다.
메시지 오프셋
정보의 편향은 소비자들이 자신의 속도로 정보를 읽고 독립적으로 처리할 수 있게 한다.책갈피와 유사합니다.
시작할 때 소비자는 매니저와 연결을 맺는다.그리고 소비자들은 어떤 소식을 소비할지 결정할 것이다.여기에는 두 가지 예가 있을 수 있다.
만약 우리가 다른 소비자도 정보를 읽고 주제의 다른 위치에 있다고 가정한다면.그곳에 남아서 처음부터 다시 읽거나 남은 소식을 계속 처리할 수도 있다.
새로운 소식이 주제에 도달하면 연결된 사용자는 하나의 이벤트를 받고 발표된 소식을 지시하며 두 사용자 모두 새로운 소식을 검색하고 처리할 수 있다.
소비자들은 자신의 현재 처지를 알고 다시 시작하거나 자신의 지위를 높일 수 있으며 매니저나 생산자 또는 다른 소비자에게 알리지 않아도 된다는 생각이다.
여기서 주의해야 할 또 다른 일은 편향량이 각 구역에 대해 특정하다는 것이다.즉, 파티션 O의 오프셋 3은 파티션 6의 오프셋 5와 동일한 데이터를 가지지 않습니다.
메시지 보존 정책
대부분의 메시징 시스템이 직면하는 도전 중 하나는 속도가 느린 사용자이다.느린 소비자들의 문제는 대기열이 길어질 수도 있고 일부 소식을 잃어버릴 수도 있다는 것이다.
카프카의 해결 방안은 메일 보존 정책이다.이것은 카프카로 하여금 설정 가능한 시간대(시간) 내에 메시지를 저장할 수 있게 한다.
기본 보존 기간: 168시간 또는 7일
로그를 분산으로 전송
주제와 구역에 대한 이 부분을 끝내기 전에 카프카가 체계적 구조를 구축하는 기초인 제출 로그를 살펴보자.데이터베이스의 트랜잭션 또는 커밋 로그는 다음과 같습니다.
진실의 근원-변화의 원시기록
만약 네가 이 짧은 문장을 좋아한다면, 나는 너와 연락해서 매우 기쁘다.😃
.ltag__user__id__350730.작업 따르기 버튼
배경색: #7eb4fb!중요
색상: #fcef98!중요
테두리 색상: #7eb4fb!중요
}
이든 호세 포레
A cloud enthusiast, an IT Professional, and a problem-solver. I am either learning something new, running a mile, or planning my next 100 days.
Reference
이 문제에 관하여(카프카 노트: 테마, 구역 및 편향), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jeden/notes-on-kafka-topics-partitions-and-offset-3fgg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)