kafka
-
Slack에서 Kafka 운영/관리 하는 방법개발하면서/타인글보면서 2023. 6. 4. 11:41
트위터에서 Slack uses Kafka at Scale라는 제목을 시작으로 Slack에서 카프카를 왜 썼고 어느정도 규모인지 얘기하는 thread가 있어 정리해 봤다. https://twitter.com/BdKozlovski/status/1661700334157430784 트위터에서 즐기는 Stanislav Kozlovski “Slack uses Apache Kafka at scale: - 6.5Gbps - 700TB of data - 100s of nodes Here's their story 👇” twitter.com 네트워크 망은 6.5 Gbps를 사용하고 700TB 데이터, 100개 이상의 서버 노드가 존재한다. 1. 2016년에 큐 시스템으로 Redis를 사용 서비스 Web App들이 Redis..
-
Uber에서 Kafka consumer 모니터링 하는 방법개발하면서/타인글보면서 2021. 10. 25. 22:46
"Kafka consumer monitoring"하면 어떤 게 떠오르나요? __consumer_offsets 토픽, lag, autocommit, consumer rebalance, Burrow ※ Burrow에 정리한 dol9 글 https://dol9.tistory.com/272 https://dol9.tistory.com/273 현재 우버는 대부분의 서비스에서 Kafka를 사용 중인데 Kafka consumer 모니터링을 위해 자체 개발한 얘기가 소개된게 있어 정리해보았습니다. ※ 규모의 경제로 여차하면 자체 개발하는 것 같다. -_-;; 자체 개발 -> 오픈 소스 -> 기술 회사 창업? ㅋㅋㅋ 그리고 정리하다보니 __consumer_offsets 토픽 데이터뿐만 아니라 어떠한 이유로 내려간 con..
-
Uber에서 Kafka를 MSA 큐로 사용하기 위해 고려한 것들개발하면서/타인글보면서 2021. 9. 19. 16:47
Kafka를 ETL이 아니라 서비스에 적용했다는 사례가 종종 들린다. 마지막 commit 이후 처리가 완료된 message가 연속적으로 있을 때 offset commit 돼야 하고 exactly-once, 그리고 consumer group 중 한 개 consumer만 재시작돼도 rebalance가 일어나면서 처리가 멈춰서 개인적으로 서비스에 Kafka를 도입에 부정적이다. 차라리 RabbitMQ처럼 온전히 Queue 목적으로 만들어진 제품을 쓰는 게 여러모로 좋다고 생각했다. 이런 나를 비웃듯이 우버에서 Kafka를 서비스에 어떻게 적용하는지 소개했다. 크흐~~~ https://eng.uber.com/kafka-async-queuing-with-consumer-proxy/ 결론부터 말하면 Kafka Co..
-
Kafka purgatory (1)개발하면서/타인글보면서 2020. 6. 29. 00:18
4. 그래서 Kafka에서는 어떻게 사용되고 있냐? DelayedOperation으로 검색하면 다양한 곳에서 사용하는데(Group Coordinator, Replica Manager, ZkAdminManager 등...) 여기서는 Replica Manager 기준으로 알아본다. broker가 가동되면 Replica manager가 한 개씩 생성되고 Replica Manager에는 역할 별 Purgatory가 존재한다. 이때 Partition을 생성하면 ReplicaManager의 Purgatory를 주입해서 아래 그림의 왼쪽은 파티션을 생성할 때 replicaManager의 Purgatory를 delayedOperations로 만들어 주입하는 코드고 오른쪽은 도식화 한것이다. 아래 그림은 xxxPurga..
-
Kafka purgatory개발하면서/타인글보면서 2020. 6. 20. 19:31
업무 중에 request를 보내면 X초 이후에 실행되는 scheduling repository를 살펴보다가 Kafka purgatory는 어떻게 구현했을지 호기심이 생겨 알아보았다. Confluent 블로그와 hierarchical timing wheels 논문을 쉽게 소개한 블로그, 두 개를 보며 나름대로 정리했다. https://www.confluent.io/blog/apache-kafka-purgatory-hierarchical-timing-wheels/ 1. Purgatory란 무엇이고 Kafka 어디에 사용되나? 네이버 사전에 Purgatory를 검색하면 연옥이라고 나오고 의미는 아래와 같다. 가톨릭 교리에서 연옥은 천국으로 가기에는 자격이 부족하지만 지옥으로 갈 정도의 큰 죄를 짓지 않은 죽은..
-
Kafka의 Sticky Partitioner 살펴보기개발하면서/타인글보면서 2020. 1. 18. 13:55
Kafka Broker(server)에 메시지를 주고받는 client 역할을 하는 Kafka Producer / Consumer 중 Producer의 성능 개선 기능이 있어 살펴보려고 한다. ref url: KIP-480, Apache Kafka Producer improvements Sticky Partitioner[Confluent Blog] Kafka Producer의 메시지 전송 방법 두 부분으로 나뉘어 있다. 사용자 코드에서 send()를 실행하면 토픽, 파티션별 record를 모아 놓는(record batch) Accumulator Accumulator에 쌓인 record batch를 가져와서 Kafka Broker에 전송하는 작업을 쉼 없이 하는 Network thread [2.4 코드를 보..