Kafka
-
카프카 - URP, Under Min ISR개발/기술 2024. 8. 30. 17:52
URP (Under Replicated Partition)카프카를 운영하다보면 URP 장애가 종종 발생한다. URP 장애는 다양한 이유로 발생하는데 원인을 알기 위해선 먼저 URP 가 먼지 알아야 한다. 카프카에는 파티션이라는 개념이 있고 파티션은 리더와 팔로워 파티션으로 나눠진다. 파티션은 토픽의 데이터가 저장되는 스토리지로 보면 되는데 리더 파티션은 프로튜서와 컨슈머로부터 토픽을 주고 받는 부분이고 팔로워 파티션은 리더 파티션의 내용을 복제한다. 스토리지에서 볼 수 있는 RAID 처럼 카프카도 내용을 복제해서 고가용성과 내구성을 확보하는 방식으로 동작한다. 카프카 운영자는 replicas.factor 옵션으로 복제본의 개수를 설정할 수 있는데 주로 3개 정도 둔다. URP 는 리더 파티션과 동기화되지..
-
Kafka 용어 정리개발 2022. 5. 31. 21:18
Topic 카프카 클러스터의 브로커에서 데이터를 관리할 때 기준이 되는 개념. 데이터의 종류를 설정하는 개념이라고 보면 된다. 예를 들어 회원 가입에 대한 이벤트를 중점적으로 처리한다고 이름으로 "join.event" 라는 토픽을 만들어줄 수 있다. Leader Partition, Follower Partition 카프카 클러스터에게 전달한 Topic을 저장하는 데이터 저장소다. Topic은 손실이 되는 것을 막기 위해 하나의 Partition에만 소속되는 것이 아니라 여러개의 Partition에 중복으로 존재한다. 특정 Sector에만 데이터를 두지 않는 RAID 저장 방식과 다른데 차이점이 있다면 Topic의 경우 컨슈머에서 처리를 해야하는 데이터기 때문에 특정 Partition 에서 데이터를 받아와..
-
golang 장단점 분석 (vs JAVA)개발 2022. 3. 10. 14:49
장점 빠르다 Java는 JVM 위에서 돌아가기 때문에 실행하기 위해선 byte코드를 machine코드로 변환하는 과정이 필요하다. 반면 golang은 빌드과정에서 이미 machine코드로 변환했기 때문에 바로 동작할 수 있다. 빌드에 걸리는 시간도 GO 언어 내부적으로 최적화를 많이 해둬서 빠른편이다. 초기 C++에서 실용성을 추가한 버전이기 때문에 속도는 거의 C++과 비슷하다고 봐도 무방할 것 같다. 비동기 작업이 쉽다 GO 언어에는 goroutine이라는 비동기 작업 처리용 경량 쓰레드가 있다. 코틀린에 coroutine과 비슷한 원리인데 둘다 사용해본 입장에선 goroutine이 좀더 간결하고 쓰기 간편했다. Nodejs 가 갖고 있는 비동기처리의 장점을 go 언어 상에도 잘 녹여낸 것 같다. 배..
-
Kafka - Event Streaming Platform개발/기술 2021. 10. 13. 20:30
Event Streaming Platform Kafka를 간단히 설명하면 Event Streaming Platform이다. 그래서 Kafka에 대해서 이해하려면 먼저 Event Streaming Platform이 무엇인지 먼저 이해할 필요가 있다. Kafka 공식 문서에서는 Event Streaming을 다음과 같이 정의한다. Technically speaking, event streaming is the practice of capturing data in real-time from event sources like databases, sensors, mobile devices, cloud services, and software applications in the form of streams of e..