336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
kafka 설치 및 연동방법 :: https://velog.io/@hanblueblue/Kafka-%EC%84%A4%EC%B9%98%EC%8B%A4%ED%96%89-%EB%B0%8F-%ED%85%8C%EC%8A%A4%ED%8A%B8
Spring Framework, 특히 Spring Kafka 모듈이 Kafka와의 연동을 지원하기 때문에 YAML 파일에 설정을 통해 쉽게 Kafka를 사용할 수 있습니다. Spring Kafka는 Kafka의 프로듀서와 컨슈머를 설정하고 관리할 수 있는 다양한 기능을 제공합니다.
위에 설정된 YAML 파일에서 spring.kafka 항목들이 Spring Kafka 모듈에 의해 자동으로 적용되며, 이를 통해 별도의 설정 코드 없이도 Kafka와의 통신을 쉽게 설정할 수 있습니다.
주요 이유:
- Spring Kafka가 Apache Kafka의 기능을 추상화하여 쉽게 사용할 수 있도록 지원.
- @EnableKafka 또는 @KafkaListener와 같은 어노테이션을 통해 Kafka 리스너와 설정을 코드에서 간단하게 사용할 수 있음.
- Kafka의 여러 설정들을 프로퍼티 파일 (또는 YAML)에서 직접 정의하여 자동 설정.
따라서, Spring Kafka의 지원 덕분에 설정 파일만으로도 Kafka와의 연동이 간단해집니다.
< 번외 >
기억을 위해 적어본다.
실무 중.. 사용자의 실시간 로그를 적재해야 해서 메시지큐 서비스 도입이 필요해 검토한 서비스 결과를 정리해 본다.
(Filebeat와 Kafka 간의 통신 검토. 검토한 버전은 내용참고)
1. Azure Blob Storage
- 사용 목적: 실시간 로그성 데이터를 저장하는 용도로는 적합하지 않음.
- 이슈:
- 1시간 단위로 로그 파일을 업로드하려고 해도, 업무에서 사용하는 서버 배포 특성상 배포 시 로그 유실 발생. (배포시 로그파일이 유실됨)
- Blob은 주로 정적 데이터 저장에 적합.
2. Filebeat
- 이슈:
- 기존 환경과 같은 대역대라서 양방향 통신이 가능했지만, 실무 Azure 환경에서는 any로 포트가 열리지 않아 통신 테스트 불가했음
- Filebeat와 Kafka 통신 문제:
- Kafka의 응답 포트(9092)가 any로 열려야 한다는 제약.
- Filebeat 통신이 된다 해도 클러스터에서 MySQL DB로 적재가 어려움.
- 네트워크 에러 발생.
- Kafka 버전 호환성 문제:
- 테스트한 Filebeat 버전은 8.x, Kafka는 0.10.1.0 버전.
- Kafka 0.8.2.0~2.6.0을 지원하므로 작동해야 하지만, 테스트에서는 어려움이 있었음.
결과적으로 사용자의 실시간 로그를 위의 기술로는 환경상 적용할 수가 없어서
사용자의 실시간 로그를 서버에서 DB에 적재 후
운영 환경에서 클러스터가 데이터를 가져와 통계를 내고. 서비스 테이블에 적재해주는 방식으로 구현되었다.
'Tip & Tech > Tech' 카테고리의 다른 글
ELK match와 term 차이 / query와 filter 차이 (0) | 2024.09.25 |
---|---|
SSL 인증서 체이닝 이슈 ( Nginx 체인인증서 만드는 방법 ) (2) | 2021.02.03 |
crontab 설정방법 / SpringBoot Scheduler Cron / 스프링부트 크론탭 설정 (0) | 2020.12.29 |
JSESSION ID 바뀌는 현상 / jcaptcha 404 / change session / 세션유지 / session null 현상 (0) | 2020.04.29 |
HTTP 와 HTTPS의 장단점 / 공개키암호화방식 / 인증기관(CA)이란? (0) | 2020.02.24 |