티스토리 뷰
Apache Kafka
Apache Kafka는 쉽게 말하면 Message Broker 시스템입니다.
그래서 Message Broker가 뭘까요? 도움을 받기위해 위키의 힘을 빌렸습니다.
메시지 브로커(message broker),인터페이스 엔진(interface engine)은 송신자의 메시지 프로토콜 형식으로부터의 메시지를 수신자의 메시지 프로토콜 형식으로 변환하는 중간 컴퓨터 프로그램 모듈이다. 메시지 브로커들은 응용 소프트웨어가 이전에 정의해둔 메시지를 교환할 수 있는 전기통신의 요소 또는 컴퓨터 네트워크이다.메시지 브로커들은
메시지 지향 미들웨어(MOM)의 빌딩 블록이지만 일반적으로 MOM과 원격 프로시저 호출 (RPC) 등의 전통적인 미들웨어를 대체하지는 않는다.
그렇군요.. 더 모르겠네요 MOM은 엄마아닌가요?
쉽게 Message Broker는 메시지를 교환할 수 있는 요소 또는 컴퓨터 네트워크라고 이해 하도록 합시다.
즉 앞으로 정리할 Kafka라는 모듈은 MicroService에서 발생하는 메시지 ( 요청,로그 등) 을 교환 할 수 있도록 도와주는
Message Broker형식의 오픈소스라고 생각하면 될 것 같아요.
#Kafka의 특징
일단 Kafka가 등장하게된 배경부터 살펴보자면, 전통적인 시스템은 아래와 같은 특징을 가졌습니다.
End-to-End 연결방식
데이터 연동의 복장섭 증가 ( HW,운영체제,장애 등)
서로 다른 데이터 Pipeline연결구조
확장이 어려운 구조
위와 같은 문제점에 더불어 시스템은 날이 갈수록 빨라지고 특히 빅데이터의 등장으로 많은 양의 데이터들을 빠르게 처리 할 수 있는 어플리케이션이 개발되어야 했습니다. 이 때 등장한 것이 바로 Apache Kafka입니다. Kafka는 모든 시스템으로 데이터를 실시간으로 전송하고 처리할 수 있고, 데이터가 많아지더라도 확장이 유연했어요. 왜냐면 kafka는 모든 종류의 DB와 연결될 수 있고 모든 시스템과 연결될 수 있었으니까요.
#kafka의 역할
그럼 Kafka의 역할은 어떤 걸까요? 기본적으로 kafka는 중앙에서 메시지를 중계하는 역할을 합니다. 뿐만아니라 Producer와 Consumer라는 개념이 있는데, Producer는 메시지를 보내는 곳이며 , Consumer는 메시지를 받는 곳이에요. 여기서 신기한 특징이 하나 있는데, Producer가 메시지를 보낼때 여러개의 Consumer에게 보낼 수 있어요. 더 자세한것은 실습을 하면서 알아보면 되니까 걱정하지마세요.😊
#Kafka Broker
Kafka에 대해 본격적으로 공부하기에 앞서, Kafka Broker에 대한 개념을 알아야 합니다. Kafka Broker에 대한 개념을 정리하면 아래와 같습니다. 📖 실행 된 Kafka 애플리케이션 서버📖 3대 이상의 Broker Cluster 구성📖 Zookeeper 연동 ( Broker ID, Controller ID/정보 저장 등)📖 n개 Broker 중 1대는 Controller 기능 수행 ( Broker에게 담당 파티션 할당 수행, Broker 정상 동작 모니터링 관리 )아직은 읽어봐도 어떤 개념인지 확실하진 않지만, 실습을 진행하면서 부딪히고 깨지며 배움이 늘어갈 것이라 생각이 듭니다.
#마치며...
이렇게 짧게 개념을 마치려 합니다. 제가 지식이 부족한것도 있어 많은량의 정보를 전달해주진 못했지만, 실습을 통해서 깨달은 사실들을 작성하며, 조금 더 디테일한 정보를 드릴 수 있도록 노력하겠습니다. 다음 포스팅에서 Kafka를 설치하고 실제로 Kafka를 활용해서 애플리케이션을 한층 더 고도화 시켜보겠습니다.
감사합니다.
'웹 프로그래밍 > MSA 학개론' 카테고리의 다른 글
[MSA] Apache Kafka Topic생성 및 Producer/Consumer (0) | 2022.04.28 |
---|---|
[MSA] Apache Kafka 설치 (0) | 2022.04.28 |
[MSA] 잠시 쉬어가는 MSA - 데이터 동기화 문제- (0) | 2022.04.27 |
[MSA] ErrorDecoder 를 이용한 예외 처리 (0) | 2022.04.27 |
[MSA] FeignClient의 예외처리 (0) | 2022.04.27 |
- Total
- Today
- Yesterday
- Spring + ELK
- git
- Feign
- docker
- MSA
- consumer
- zipkin
- config
- prometheus
- rabbitmq
- 오늘저녁 삼겹살
- JWT
- MariaDB
- elasticSearch
- 루틴기록
- producer
- ACTUATOR
- 빅-오
- 운동
- LoadBalancer
- Kafka Connect
- UserService
- 운동일기
- Logstash to ElasticSearch
- 미래의나에게동기부여
- Logstash 활용
- Gateway
- springcloud
- kafka
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |