일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Spring
- gradle
- Slick
- coursera
- enablekafkastreams
- spring-batch
- scala 2.10
- spring-cloud-stream
- schema registry
- Kafka
- kafkastreams
- play framework
- RabbitMQ
- kafka interactive query
- Elk
- reactive
- kafkastream
- avo
- kafka streams
- 플레이 프레임워크
- statestore
- springboot
- confluent
- scala
- 한빛미디어
- 카프카
- Logstash
- spring-kafka
- Elasticsearch
- aws
- Today
- Total
목록2019/11 (4)
b
Kafka 는 기본적으로 1번 이상의 메시지 전송을 보장 하는 At Least Once Delivery 정책이었다. 메시지가 전송되었다는 ack를 확실히 받지 못할 경우 retry send를 하는 방법으로 최소 1회의 전송을 보장 하였던 것이다. 하지만 0.11 버전부터 exactly once delivery 를 위해서 idempotent producer가 지원되기 시작하였다 (함께 transactional producer도 포함된다) 메시지가 at least once delivery (즉 duplicate send)는 링크의 글과 이미지를 참고하면 쉽게 이해할 수 있다. https://dzone.com/articles/exactly-once-semantics-with-apache-kafka-1 Exac..
https://deview.kr/2019/schedule/305 에서 소개한 11번가의 주문/결제 시스템에 관련된 이야기이다. 실제로 '결제'단계에서 장애가 났을때 11번가의 주문/결제는 어떻게 진행이 되었을까? 아래의 예는 지난 11월 11일 오후 1시경의 11번가 스토리이다. 단순화해서 "주문 -> 결제 처리 -> 11번가 데이터베이스에 저장" 흐름대로 주문/결제가 처리된다고 생각하자. 13:00 정각 기프티콘을 절반 가격에 한정 판매 하면서 주문은 미친듯이 들어온다. 12시 59분에 비해 약 4배의 속도로 주문/결제가 들어왔다. 당연히 주문 처리량 보다 높아졌다. 13:01분 부터 주문유입량 >> 주문처리량이 되었다. 원래대로라면 다른 주문들은 다 Rejection 하거나, 고객에게 1분 이상의 대..
#topic 생성 kafka-topics --create --topic freblogg --partitions 3 --replication-factor 1 --zookeeper localhost:2181 - 파일명은 base offset에 영향을 받는다 (해당 세그먼트의 첫 번째 offset) 그러므로 새로 생성된 토픽-파티션의 첫번째 세그먼트는 항상 0000000000000.log 파일명이다. 간단하게 2개의 메시지를 넣고 다시 한번 0번 파티션을 확인해보면 0000000000000.log 의 파일 크기가 변경되고 그 안을 보면 해당 데이터가 들어간것을 확인 할 수 있다 이를 좀 더 자세히 보려면 아래의 명령어처럼 세그먼트 내부를 확인 할 수 있다. ( DumpLogSegments ) ~/conflue..
결론부터 얘기하면, 아직은 못쓰겠다. 정확히 말하면 쉽게 사용 가능하지만, 이걸 메인 모니터링으로 사용하기에는 메트릭 종류가 너무 적다 RabbitMQ는 다양한 플러그인을 가지고 있고, 위의 화면처럼 기본적인 모니터링 화면도 제공하고 있다. 하지만 매번, 해당 UI 에 접근한다는 점이 불편했고, 메트릭 수치가 현재것만 볼 수 있다는 점, 그리고 alert/watch 기능을 제공하지 않는 점이 불편해서 다른 모니터링이 필요하였다. (지금에서야 고민하는 이유는... 이 시스템이 담당자가 없고, 모니터링이 없었다. 그래서 오늘 해야겟다고 마음 먹었다) 팀내에서 사용하고 있는 모니터링은 메인 스트림은 Promethus + Grafna / ELK 이다. 이중에서 간편하고 전체 플랫폼을 내가 직접 관리하고 있는 E..