kafka를 이용한 chatting 프로그램 개발

Kafka 프로듀소와 컨슈머의 개발하는 법을 익힌다. 컨슈머 그룹에 대한 개념을 잡는다. 메시지 교환 프로그램의 구조를 개발한다. IoT응용을 찾는다.kafka의 구성을 끝냈다고 가정한다. 아직 kafka 구성을 마치지 않았다면 문서를 참고해서 구성을 끝내자.채팅 프로그램은 아래의 구조를 가진다. 가장 단순한 구조로 만들고, 이 구조를 확장해 나가자.쉽게 생각 할 수 있는 구조다. 클라이언트는 웹 브라우저일 수도 있고, 네이티브 애플리케이션일 수도 있다. 이들 클라이언트는 등의 메시지 인터페이스를 가지고 있다. 서비스 특성에 따라서 어떤 프로토콜을 사용할지가 결정될 것이다. 웹 브라우저를 사용하는 서비스라면 HTTP와 WebSocket 조합 혹은 Websocket만으로 구성할 것이다. IoT 서비스 혹은 네티이브 애플리케이션을 대상으로 하는 서비스라면 WebSocket과 MQTT 조합으로 구성할 것이다. 물론 정답은 없다. 3개 모두를 이용 할 수도 있고, 전혀 다른 프로토콜을 이용 할 수도 있다.

Dictionaries

딕셔너리는 리스트와 비슷하지만 더 범용적으로 사용 할 수 있다. 리스느는 인덱스로 정수만 사용 할 수 있지만 딕셔너리는 거의 모든 타입을 인덱스로 사용 할 수 있다.딕셔너리는 값을 저장하는(혹은 가리키는) 키의 조합이라고 생각하면 된다. 키(key)와 값(value)로 이루어져있기 때문에 key-value pair라고 부른다. 혹은 아이텀(item)이라고 부르기도 한다. 예를 들어 한영사전을 딕셔너리로 만든다고 하면 키는 영어 문자열 값은 한글 문자열이 된다.

Kafka 디자인

우리는 대기업이가지고 있는 모든 실시간 데이터를 처리 하기 위한 통합 플랫폼의 역할을 할 수 있도록 카프카를 설계했다. 이를 위해서 광범위한 유즈 케이스를 고려했다.실시간 로그 집계와 같은 대용량 이벤트 스트림을 처리하려면 높은 대역폭을 확보 할 수 있어야한다. 오프라인 시스템에서도 주기적인 데이터로드를 지원하기 위해서는 대규모의 백로그를 처리 할 수 있어야 한다.

Python 함수

프로그래밍 영역에서 함수는 일련의 명령문을 수행하는 코드의 조각을 의미한다. 함수를 정의 할 때는, 해당 코드 조각을 찾기 위한 이름을 명시해야 한다. 개발자는 나중에 함수의 이름을 호출(call)하는 것으로 코드를 읽어서 실행 할 수 있다. 아래 함수 호출 예제를 보자. >>> type(32)우리는 type이라는 이름의 함수를 호출했다. 함수를 호출 할때는 값을 넘길 수 있는데 이를 매개변수(argument)라고 한다. 이 함수는 매개변수로 주어진 값이 어떤 타입인지를 확인해서 반환하는 일을 한다.