<commit_before>---
layout: post
title:  "Meet Kafka"
date: 2018-01-31 11:05:12
categories: Kafka
author : <NAME>
tag: Spark
cover: "/assets/kafka_log.png"
---
#1. 카프카를 만나보자! 


<center>==애플리케이션 성능 모니터링을 위해 메트릭을 수집한다면...==</center>

<center><img src="https://user-images.githubusercontent.com/12586821/47771951-808db100-dd28-11e8-9e6a-286184d96bd8.png" height="200" /></center>

<center>==그러나, 시간이 지나고 여러 서버에서 다양한 포맷의 데이터를 수집하게 된 플랫폼은 점점 복잡해져간다 ㅠㅠ==
<img src="https://user-images.githubusercontent.com/12586821/47771971-8edbcd00-dd28-11e8-952f-7285e866e07a.png" height="200" />

==이렇게 복잡하게 처리하지 말고 한 곳에서 데이터를 받은 다음 필요한 곳으로 보내줄 수는 없을까?..==
<img src="https://user-images.githubusercontent.com/12586821/47776010-afaa1f80-dd34-11e8-8631-ce008b0f9e7f.png" height="200"/></center>

==Pub/Sub Messaging System을 이용한 구조==
- 메시징 패러다임 중 하나
- Subscriber가 정해져 있지 않고 대신 Publisher가 발행한 메시지는 정해진 범주에 따라, 각 범주에 대한 구독을 신청한 Subscriber에게 전달됨
- Subscriber는 Publisher에 대한 지식이 없어도 원하는 메시지만을 수신할 수 있음
- 이렇게 Publisher와 Subscriber를 분리함으로써 융통성있는 네트워크 토폴로지와 높은 확장성을 가능케 함

<center>==이 시스템을 계속 확장해간다면...==
<img src="https://user-images.githubusercontent.com/12586821/47776078-dcf6cd80-dd34-11e8-974f-8d28b568daae.png" height="200"/>

==그러나 시간이 지나고 여러 서버에서 다양한 포맷의 데이터를 수집하게 된 플랫폼은 점점 복잡해져간다ㅠㅠ==


_ _ _


==그렇다면 이 상황에서 Kafka를 쓴다면 ?!?! ==
<img src="https://user-images.githubusercontent.com/12586821/47771968-8e433680-dd28-11e8-99dd-2426e04d5485.png" height="300"/> 
== GOOOD!! ==</center>




### Apache Kafka<commit_msg> 카프카 Chapter 1 마크다운 수정<commit_after>---
layout: post
title:  "Meet Kafka"
date: 2018-01-31 11:05:12
categories: Kafka
author : <NAME>
tag: Spark
cover: "/assets/kafka_log.png"
---
# 1. 카프카를 만나보자! 


<center> 
>> 애플리케이션 성능 모니터링을 위해 메트릭을 수집한다면...

<img src="https://user-images.githubusercontent.com/12586821/47771951-808db100-dd28-11e8-9e6a-286184d96bd8.png" height="400" /> </center>

--- 

<center> 
>> 그러나, 시간이 지나고 여러 서버에서 다양한 포맷의 데이터를 수집하게 된 플랫폼은 점점 복잡해져간다 ㅠㅠ
<img src="https://user-images.githubusercontent.com/12586821/47771971-8edbcd00-dd28-11e8-952f-7285e866e07a.png" height="400" />

--- 

>> 이렇게 복잡하게 처리하지 말고 한 곳에서 데이터를 받은 다음 필요한 곳으로 보내줄 수는 없을까?..
<img src="https://user-images.githubusercontent.com/12586821/47776010-afaa1f80-dd34-11e8-8631-ce008b0f9e7f.png" height="400"/> </center>

Pub/Sub Messaging System을 이용한 구조
- 메시징 패러다임 중 하나
- Subscriber가 정해져 있지 않고 대신 Publisher가 발행한 메시지는 정해진 범주에 따라, 각 범주에 대한 구독을 신청한 Subscriber에게 전달됨
- Subscriber는 Publisher에 대한 지식이 없어도 원하는 메시지만을 수신할 수 있음
- 이렇게 Publisher와 Subscriber를 분리함으로써 융통성있는 네트워크 토폴로지와 높은 확장성을 가능케 함

<center> 
>> 이 시스템을 계속 확장해간다면...
<img src="https://user-images.githubusercontent.com/12586821/47776078-dcf6cd80-dd34-11e8-974f-8d28b568daae.png" height="200"/>

>> 그러나 시간이 지나고 여러 서버에서 다양한 포맷의 데이터를 수집하게 된 플랫폼은 점점 복잡해져간다ㅠㅠ==


_ _ _


>> 그렇다면 이 상황에서 Kafka를 쓴다면 ?!?! 
<img src="https://user-images.githubusercontent.com/12586821/47771968-8e433680-dd28-11e8-99dd-2426e04d5485.png" height="300"/>
>> GOOOD!! 

</center>




### Apache Kafka
{'fraction_non_alphanumeric': 0.1450100468854655, 'fraction_numerical': 0.1416610850636303, 'mean_word_length': 4.123499142367067, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 0, '>': 43, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4487025', 'n_tokens_mistral': 2094, 'n_tokens_neox': 2190, 'n_words': 296}