전체 글
-
[Kafka] - 16. Kafka 설치개발/Kafka 2022. 8. 18. 16:27
Kafka의 기본 개념을 알고 있다고 가정 후 진행하였습니다. Kafka는 Apache Kafka와 Confluent Kafka 두 가지의 종류로 나뉩니다. 금일 설치할 Kafka는 Apache Kafka입니다. Apache Kafka는 Opensource 입니다. 1. Install Kafka 아래 링크를 참조하여 설치합니다. https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org 최근 올라와 있는 kafka_2.13-3.2.1.tgz 파일을 이용하여 설치하겠습니다. WSL2 Ubuntu 환경에서 설치를 진행하였습니다. 원하는 File위치나 새로 생성하여 진..
-
[Linux] - Kafka 실행 시 exec: java: not found개발/Linux 2022. 8. 18. 16:08
Kafka Zookeeper를 실행하기 위해서는 Java가 설치되어있어야합니다. $ java --version 위 명령어를 쳤을 경우 Install하라고 되어있다면 아래와 같이 진행이 필요합니다. 최신 JDK를 설치해보았습니다. 1. Download JDK https://www.oracle.com/java/technologies/downloads/ 최근 JDK 버전을 다운 받아줍니다. $ wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz $ tar -zxf jdk-18_linux-x64_bin.tar.gz su 권한이 없다고 하면 Link를 참고 하시면 됩니다. $ su $ mkdir /opt/jdk $ mv jdk-1..
-
[Linux] - Python Module 설치 확인 방법개발/Linux 2022. 8. 11. 22:51
Module 여부 확인 방법 1. Module이 설치되어 있는 경우 $ python -c "import math" $ echo $? 0 # math module exists in system 2. Module이 설치되어 있는 경우 $ python -c "import numpy" Traceback (most recent call last): File "", line 1, in ImportError: No module named numpy $ echo $? 1 # numpy module does not exist in system Reference https://askubuntu.com/questions/588390/how-do-i-check-whether-a-module-is-installed-in-pyt..
-
[Kafka] - 17. Docker-compose Kafka 개발환경 구축 및 테스트개발/Kafka 2022. 8. 11. 17:34
1. Docker 설치 Docker부터 설치하여 줍니다. ( 설치 방법은 Docker Category에서 확인하시면 됩니다. ) $ docker -v # Docker version 20.10.17, build 100c701 $ docker-compose -v # Docker Compose version v2.6.1 Docker를 기본으로 하기 때문에 중간에 이해가 안되시면 Docker 개념부터 보시는 것을 추천합니다. 2. Zookeeper, Broker Container 설치 및 실행 이론에서 배운 바와 같이 Zookeeper가 실행 한 후에 Kafka를 실행시켜주어야 합니다. ( 이에 따라 Broker에는 depends_on parameter 추가 참고 ) Zookeeper1,2,3은 12181번 /..
-
[Kafka] - 15. EOS Transaction개발/Kafka 2022. 8. 10. 17:31
1. Transaction Concept EOS를 처리하기 위해 하나의 Logic으로 처리되어 필요한 개념 1-1) Transaction Coordinator 각 Producer에게는 Transaction Coordinator가 할당되며, PID 할당 및 Transaction 관리의 모든 Logic을 수행한다. 1-2) Transaction log 새로운 Internal Kafka Topic으로, Consumer offset topic과 유사하게, 모든 Transaction이 영구적이고, 복제된 Record를 저장하는 Transaction Coordinator Status 저장소 1-3) TransactionalId Producer를 고유하게 식별하기 위해 사용한다. 동일한 TransactionalID를..
-
[Kafka] - 14. EOS(Exactly Once Symantics)개발/Kafka 2022. 8. 10. 15:07
Symantics 1. At-Most-One Semantics ( 최대 한번 전송 ) Producer Acks=1 확인 시간이 초과되거나 오류가 Response되어도, Producer가 재전송하지 않아 Message가 Kafka Topic에 기록되지 않고, Consumer에 전달되지 않는다. 2. At-Least-Once Semantics ( 최소 한번 전송 ) Producer ACKS=ALL,-1 Producer가 Broker로 부터 ACK를 수신, ALL인 경우에는 Topic에 최소 한번 작성된 것을 의미한다. ACK가 시간 초과나 오류를 Response하면, Message가 기록되지 않는 것으로 판단하여 Message를 Retry 처리한다. 이로 인해 Message가 중복되어 저장 될 수 있다. 3..
-
[Kafka] - 13. Kafka Log File개발/Kafka 2022. 8. 10. 14:05
Kafka Log file Kafka Log Segment File은 Data File와 같은 개념이다. Segment File이 생성되는 위치는 각 Broker의 server.properties File 내 log.dirs Parameter로 정의한다.( ','로 구분 ) 각 Topic과 Partition은 log.dirs 아래에 하위 directory로 구성 E.g) /data/kafka/kafka-log-a/test_topic-0 log.dirs = /data/kafka/kafka-log-a, /data/kafka/kafka-log-b, /data/kafka/kafka-log-b File명에는 의미가 존재한다. 000000123453.* File은 123453 Offset부터 7735203(7735..