본문 바로가기

전체 글134

Consumer - 1 💡 이번 포스팅에서는 Consumer에 대해 정리해 보도록 하겠습니다. Consumer(이하 컨슈머)는 프로듀서가 브로커에 전송한 메시지를 읽는 역할을 수행합니다. 컨슈머는 반드시 컨슈머 그룹에 속해야 하며 컨슈머 그룹 내에서 여러 개의 컨슈머들은 토픽 파티션 별로 분배됩니다. 아파치와 컨플루언트 공식 문서에서는 아래와 같이 설명하고 있습니다. 컨슈머는 오프셋 위치에서 시작하는 로그를 받는다고 합니다. 또한 오프셋 위치를 제어할 수 있기 때문에 이미 가져왔던 데이터를 다시 가져오는 것 또한 가능합니다. 이때 오프셋 위치는 __consumer_offset 토픽에 저장합니다. 📢 앞서 컨슈머가 프로듀서가 브로커에 전송한 메시지를 읽어온다고 했는데, 정확히 얘기하면 컨슈머가 subscribe(구독)하고 있는 .. 2023. 4. 16.
Thymeleaf 3.1 release note 💡 이번 포스팅에서는 타임리프 3.1 버전의 변경사항에 대해 정리해 보도록 하겠습니다. Spring 6.0 그리고 Spring Boot가 3.0 각각 메이저 버전이 올라감에 따라 타임리프 또한 호환성을 맞추기 위해 버전을 3.1로 올렸습니다. 자세한 내용은 공식 문서를 참고하시면 좋을 것 같습니다. 먼저 위 3개의 변경 사항은 Spring과 관련이 있는 부분입니다. Spring에서 6.0와의 호환성을 맞추기 위해 javax.\* 패키지 대신 jakarta.\* 패키지가 사용되고, Spring Security 5.X 에서는 타임리프와 연동하기 위해 thymeleaf-extras-springsecurity5 의존성을 사용했는데 이젠 thymeleaf-extras-springsecurity6 의존성을 사용해야.. 2023. 4. 16.
성공과 실패를 결정하는 1%의 네트워크 원리 1%의 네트워크 원리 | Tsutomu Tone - 교보문고 1%의 네트워크 원리 | 성공과 실패를 결정하는 1%의 네트워크 원리 (2nd Edition(개정1판 10쇄))이 책만큼 네트워크의 구조와 작동 원리에 대해 체계적으로 설명한 책은 없다! 이 책은 네트워크 기술을 product.kyobobook.co.kr 챕터 웹 브라우저가 메시지를 만든다 - 웹 브라우저의 내부 탐험 TCP/IP의 데이터를 전기신호로 만들어 보낸다 - 프로토콜 스택과 LAN 어댑터의 탐험 케이블의 앞은 LAN 기기였다 - 허브와 스위치, 라우터의 탐험 액세스 회선을 통해 인터넷의 내부로! - 액세스 회선과 프로바이더의 탐험 서버 측의 LAN에는 무엇이 있는가· - 방화벽과 캐시 서버의 탐험 웹 서버에 도착하여 응답 데이터가 웹.. 2023. 4. 16.
Grafana 설치 window 기준으로 Grafana 설치 방법을 정리해 보도록 하겠습니다. https://grafana.com/grafana/download Download Grafana | Grafana Labs Overview of how to download and install different versions of Grafana on different operating systems. grafana.com 각자 운영체제에 맞는 압축 파일을 다운로드 합니다. 압축을 해제한 후 bin 폴더에 있는 grafana-server.exe 파일을 실행하면 되는데, 압축 해제한 파일들을 별도의 폴더로 만들어 관리하는 것이 좋습니다. 저는 C:\dev\grafana 경로에 저장했으며 이후 bin 폴더에 있는 grafana-se.. 2023. 4. 13.
Prometheus 설치 window 기준으로 Prometheus 설치 방법을 정리해 보도록 하겠습니다. https://prometheus.io/download/ Download | Prometheus An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach. prometheus.io 각자 운영체제에 맞는 파일을 선택하시면 되는데 저는 window로 다운로드하겠습니다. 압축을 해제한 후 prometheus.exe 파일을 실행하면 되는데, 압축 해제한 파일들을 별도의 폴더로 만들어 관리하는 것이 좋습니다. 저는 C:\dev\.. 2023. 4. 13.
Producer - 2 💡 지난번 정리했던 Producer에서 추가 내용이 있어 정리한 포스팅입니다. Producer에 대해 잘 모르시는 분들은 전에 정리했던 Producer 포스팅을 참고하시면 좋을 것 같습니다. Producer 프로듀서는 카프카의 토픽으로 메시지를 전송하는 역할을 담당합니다. 위 이미지는 프로듀서의 전체적인 흐름을 나타낸 것입니다. 먼저 카프카로 전송하기 위한 실제 데이터인 ProducerRecord를 생 soono-991.tistory.com acks acks는 producer가 broker에 메시지를 전송한 결과에 관한 설정인데, confluent kafka 공식 문서의 설명을 살펴보면 다음과 같습니다. 프로듀서가 요청 완료를 고려하기 전에 리더 파티션이 수신해야 하는 승인의 수입니다. 이것은 전송된 레.. 2023. 4. 9.
IT 엔지니어를 위한 네트워크 입문 IT 엔지니어를 위한 네트워크 입문 | 고재성 - 교보문고 IT 엔지니어를 위한 네트워크 입문 | 클라우드/데브옵스 시대에 알아야 할 인프라 지식 서버실이 있고, 서버 관리자가 따로 있었던 시대를 지나 클라우드 서비스가 보편화되었다. 클라우드 서비 product.kyobobook.co.kr 챕터 1장 네트워크 시작하기 2장 네트워크 연결과 구성 요소 3장 네트워크 통신하기 4장 스위치: 2계층 장비 5장 라우터/L3 스위치: 3계층 장비 6장 로드 밸런서/방화벽: 4계층 장비(세션 장비) 7장 통신을 도와주는 네트워크 주요 기술 8장 서버 네트워크 기본 9장 보안 10장 서버의 방화벽 설정/동작 11장 이중화 기술 12장 로드 밸런서 13장 네트워크 디자인 14장 가상화 기술 15장 가상화 서버를 위한 .. 2023. 4. 8.
그림으로 배우는 HTTP & Network Basic HTTP & Network Basic | 우에노 센 - 교보문고 HTTP & Network Basic | [그림으로 배우는 HTTP & Network Basic]은 웹의 근간을 이루는 HTTP를 중심으로 하여 웹, 인터넷 데이터 통신 분야의 기초가 되는 내용들을 다루고 있다. 초반부에는 인터넷의 역사부 product.kyobobook.co.kr 챕터 제 1장 웹과 네트워크의 기본에 대해 알아보자 제 2장. 간단한 프로토콜 HTTP 제 3장. HTTP 정보는 HTTP 메시지에 있다 제 4장. 결과를 전달하는 HTTP 상태 코드 제 5장 HTTP와 연계하는 웹 서버 제 6장 HTTP 헤더 제 7장 웹을 안전하게 하는 HTTPS 제 8장 누가 액세스하고 있는지를 확인하는 인증 제 9장 HTTP에 기능을 추가한.. 2023. 4. 8.
Partitioner & Partition 💡 이번 포스팅에서는 Partitioner & Partition에 대해 알아보도록 하겠습니다. Topic을 생성할 때 파티션을 지정하지 않을 경우 기본적으로 해당 토픽에 대한 1개의 파티션이 생성이 됩니다. 따라서 토픽은 1개 이상의 파티션으로 구성이 된다고 말할 수 있으며, 파티션의 그룹이라고 말할 수도 있습니다. 위와 같이 하나의 토픽에 대해 파티션이 여러 개 구성되어 있을 경우, 각 파티션은 0번부터 시작해서 순차적으로 이름이 지정됩니다. 그리고 이 파티션에 producer가 보낼 메시지가 저장됩니다. 앞서 Producer 정리 포스팅에서 Producer가 kafka로 메시지를 보낼 때 특정 토픽으로 메시지를 보낸다고 했었습니다. 하지만 조금 더 정확하게 말하자면 특정 토픽으로 메시지를 보내는 것이.. 2023. 4. 8.
kafka CLI 사용하기 - kafka-configs.(sh | bat) 💡 이번 포스팅에서는 kafka-configs.(sh | bat)에 대해 알아보도록 하겠습니다. kafka에서 config는 크게 2 부분으로 나눌 수 있습니다. ✨ Broker, Topic 레벨의 Config ㆍKafka 서버에서 설정되는 Config ㆍTopic의 Config 값은 Broker 레벨에서 지정한 Config를 기본으로 설정하며 별도의 Topic 레벨 Config를 설정할 경우 이를 따름 ㆍ보통 server.properties에 있는 Config는 변경 시 Broker 재기동이 필요한 Static Config이며, Dynamic Config는 kafka-configs를 이용하여 동적으로 config 변경 가능 ✨ Producer와 Consumer 레벨의 Config ㆍKafka 클라이언트.. 2023. 4. 8.
kafka CLI 사용하기 - kafka-consumer-group.(sh | bat) 💡 이번 포스팅에서는 kafka-consumer-group.(sh | bat)에 대해 알아보도록 하겠습니다. kafka-consumer-groups 명령어를 사용하면 다음과 같은 정보를 확인할 수 있습니다 Consumer Group list 정보 Consumer Group과 Consumer 관계, Partition 등에 대한 상세 정보 Consumer Group 삭제 Producer가 전송한 Log Message의 지연 Lag 정보 그리고 kafka-consumer-groups 명령어에 사용할 수 있는 옵션은 아래와 같습니다. user@ubuntu:~/data/kafka-logs/multipart-topic-0$ kafka-consumer-groups Missing required argument "[b.. 2023. 4. 8.
kafka CLI 사용하기 - kafka-dump-log 💡 이번 포스팅에서는 kafka-dump-log에 대해 알아보도록 하겠습니다. kafka-dump-log 설명을 보면 로그 파일을 파싱 하여 그 내용을 콘솔에 덤프 하도록 도와주며, 손상된 로그 세그먼트를 디버깅하는데 도움이 된다고 합니다. user@ubuntu:~/confluent/bin$ kafka-dump-log --help This tool helps to parse a log file and dump its contents to the console, useful for debugging a seemingly corrupt log segment. Option Description ------ ----------- --cluster-metadata-decoder if set, log data wi.. 2023. 4. 4.
KafkaProducer 💡 이번 포스팅에서는 KafkaProducer 객체에 대해 알아보도록 하겠습니다. kafka의 producer에 대해 궁금하신 분들은 아래 producer에 대해서 정리한 포스팅이 있으니 참고하시면 좋을 것 같습니다. Producer 프로듀서는 카프카의 토픽으로 메시지를 전송하는 역할을 담당합니다. 위 이미지는 프로듀서의 전체적인 흐름을 나타낸 것입니다. 먼저 카프카로 전송하기 위한 실제 데이터인 ProducerRecord를 생 soono-991.tistory.com kafka를 사용하기 위해서는 아래와 같이 의존성을 추가해야 합니다. implementation 'org.apache.kafka:kafka-clients:3.1.2' 그리고 kafka-client에서 제공하는 KafkaProducer 객체를.. 2023. 4. 4.
Producer 프로듀서는 카프카의 토픽으로 메시지를 전송하는 역할을 담당합니다. 위 이미지는 프로듀서의 전체적인 흐름을 나타낸 것입니다. 먼저 카프카로 전송하기 위한 실제 데이터인 ProducerRecord를 생성합니다. 레코드는 Topic, Partition, Key, Value로 구성됩니다. 프로듀서가 카프카로 메시지를 전송할 때 특정 Topic으로 메시지를 전송합니다. 따라서 레코드 구성 요소에서 Topic, Value은 필수 값이며, Partition, Key는 옵션 값입니다. send() 메서드를 통해 레코드를 전송하면 프로듀서는 가장 먼저 데이터가 네트워크를 통해 전송될 수 있도록 레코드를 ByteArrays로 직렬화합니다. 그런 다음 직렬화된 데이터가 파티셔너로 전송됩니다. 클라이언트는 메시지를 게시하는 .. 2023. 4. 3.
Linux 기본 명령어 - tar tar는 Tape ARchiver의 약자로 여러 개의 파일을 하나의 파일로 묶거나 묶은 파일을 다시 여러 개의 파일로 풀 때 사용하는 명령어입니다. 흔히 linux에서 tar로 압축한다는 표현을 사용하는데, 정확히 말하자면 tar 자체는 파일 압축을 수행하지는 않습니다. 단지 파일을 하나의 파일로 묶는 기능만 하기 때문에 tar 파일로 생성했다고 해서 용량이 줄어들지는 않습니다. 하지만 이후에 gzip 또는 bzip2 방식을 같이 사용할 수 있게 되어 tar 명령어로도 파일 압축을 할 수 있게 됩니다. 정리하자면 tar 자체는 파일 압축을 수행하지는 않지만, tar + (gzip | bzip2)와 같이 사용하면 tar 명령어로도 파일 압축을 수행할 수 있습니다. 확장자 일반적으로는 tar 명령어로 생성한.. 2023. 4. 2.