실시간 데이터 처리 14

Zero Copy

Zero Copyhttps://www.ibm.com/developerworks/linux/library/j-zerocopy/kafka 고 성능 Message Queue를 구현하기 위해 Zero-Copy 기능을 활용일반적인 데이터 전송 방식File.read(fileDesc, buf, len);Socket.send(socket, buf, len);기존의 일반적인 데이터 복사 형식Kernel 에서 Application으로 데이터를 복사하고 Application 쪽에서는 Kernel로 데이터를 복사한다.context-switch 및 복사로 인해 성능이 느려질수가 있다.Zero Copy 데이터 전송 방식public void transferTo(long position, long count, WritableByte..

RabbitMQ Exchange Fanout

RabbitMQ Exchange Fanouthttp://www.rabbitmq.com/tutorials/tutorial-three-python.htmlPublish/Subscribe 형태Exchange에 Queue를 Bind하는 형식Fanout방식은 Exchnage에 bind 되어있는 모든 Queue에 메세지를 보낸다.channel.exchange_declare(exchange='logs', type='fanout')exchange를 선언(declare), type은 fanout으로 한다.channel.basic_publish(exchange='logs', routing_key='', body=message)기존 Queue에 메세지를 보낸 것과 달리 Publish에서는 exchange를 대상으로 publ..

RabbitMQ Simple Queue

RabbitMQ Simple Queue용어 정리Producing메세지를 큐에 보낸다.Queue우편통처럼 메세지를 저장해놓는 장소Consuming큐를 통해 메시지를 받는다.Hello World!Sending#!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))channel = connection.channel()connection과 channel를 생성channel.queue_declare(queue='hello')channel를 통해 queue 선언(declare) 한다.channel.basic_publish(exchange='', routing_key='hell..

RabbitMQ

RabbitMQ비동기 메시지 큐 플랫폼Brew를 이용하여 설치하는 방법https://www.rabbitmq.com/install-homebrew.htmlbrew update brew install rabbitmqUbuntu에서 설치하는 방법https://www.rabbitmq.com/install-debian.htmlrabbitmq.com APT Repostiroy 추가echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.listapt-get updatesudo apt-get updateinstallsudo apt-get install rabbitmq-serverCommandSer..