RabbitMQ 따라잡기 AMQP 기반의 오픈소스 메시지 브로커
Description
『RabbitMQ 따라잡기』는 가상의 기업을 소개하고 실생활에서 다뤄지는 문제를 해결하기 위해 도입되어야 할 메시징 시스템을 제시한다. 아울러 실제 사용 가능한 소스 코드와 이를 보완해나가는 각 장의 구성은 메시징 시스템의 근본 개념과 RabbitMQ의 사용법을 충분히 익히도록 돕는다.
저자

데이비드도소트

저자데이비드도소트(DavidDossot)는소프트웨어엔지니어와아키텍트로18년이상을종사했다.2009년이후로다양한개발환경에서RabbitMQ를사용해오고있으며,MuleAMQP트랜스포트의주요기여자(maincontributor)다.주요관심사는JVM과얼랭(Erlang)VM을위한분산및확장가능한서버사이드애플리케이션을구축하는것이다.IEEE컴퓨터학회와AOPA회원이며,ESSTIN의산업시스템공학학위를보유하고있다.매닝(Manning)출판사의『MuleinAction』1판및2판의공동저자이며,Mule챔피언이자DZone의최우수블로거다.여러오픈소스프로젝트에참여하고있으며스택오버플로우(StackOverflow)사이트에서사람들을돕는일을즐긴다.또한졸트어워드(JoltAwards)심사위원으로활동하기도한다.

목차

목차
1장.메시징,도약의첫걸음
메시징이란?
__느슨하게결합된시스템구성
__AMQP란?
RabbitMQ브로커
__RabbitMQ사용사례
RabbitMQ준비
__브로커설치
__관리플러그인설치
__계정설정
요약
2장.애플리케이션수신함만들기
RabbitMQ에연결
__채널과작업
__수신함구축
____사용자에게메시지보내기
____AMQP메시지구조
____사용자메시지가져오기
__실행화면살펴보기
토픽메시지추가
요약
3장.서버푸시로전환
폴링그너머로
__큐소비
____소비자구독클래스만들기
____구독관리
__웹소켓엔드포인트로연결
____애플리케이션실행
모든큐에메시지발행
__팬아웃익스체인지결합
__모든사용자에게메시지발행
__애플리케이션구동
요약
4장.애플리케이션로그처리
로그발행과소비
AMQP부하테스트
__부하테스트수행
__메시지프리페칭
오류메시지보내기
요약
5장.메시지전달처리
발송불가메시지처리
__큐리팩토링
__메시지처리
메시지전달보장
__백오피스송신자구현
요약
6장.스마트메시지라우팅
서비스지향메시징
__큐로메시지회신
__서비스요청라우팅
인증서비스구현
인증서비스호출
요약
7장.운영환경에RabbitMQ설정
브로커단일장애점해결
__미러링큐구성
__클러스터에연결
__브로커페더레이션
브로커모니터링
요약
8장.애플리케이션테스팅과추적
RabbitMQ애플리케이션테스트
__RabbitMQ애플리케이션단위테스팅
__RabbitMQ애플리케이션통합테스팅
RabbitMQ추적
__파이어호스추적기
요약
부록.메시지스키마
사용자메시지
인증메시지
일반적인오류메시지

출판사 서평

출판사서평
★요약★
RabbitMQ는오픈소스메시지브로커로,서로다른시스템간에메시지를효율적으로교환할수있는기능을제공한다.RabbitMQ가제공하는풍부한기능덕분에누구나쉽게사용가능하며,고가용성및확장성을지닌시스템을손쉽게구축할수있다.이책은가상의기업을소개하고실생활에서다뤄지는문제를해결하기위해도입되어야할메시징시스템을제시한다.아울러실제사용가능한소스코드와이를보완해나가는각장의구성은메시징시스템의근본개념과RabbitMQ의사용법을충분히익히도록돕는...
★요약★
RabbitMQ는오픈소스메시지브로커로,서로다른시스템간에메시지를효율적으로교환할수있는기능을제공한다.RabbitMQ가제공하는풍부한기능덕분에누구나쉽게사용가능하며,고가용성및확장성을지닌시스템을손쉽게구축할수있다.이책은가상의기업을소개하고실생활에서다뤄지는문제를해결하기위해도입되어야할메시징시스템을제시한다.아울러실제사용가능한소스코드와이를보완해나가는각장의구성은메시징시스템의근본개념과RabbitMQ의사용법을충분히익히도록돕는다.실제운영환경에서의모니터링,클러스터링등을학습함으로써초심자에게훌륭한지침서가될수있으리라믿는다.
★추천의글★
RabbitMQ의가장흥미로운점은사람들이늘새로운기능을모색하고더나은방법을추구한다는점이다.전문개발자라면누구나숙지해야하는메시징기술은이제데이터베이스와웹애플리케이션과나란히할만큼많은발전을이뤘다.
RabbitMQ는2006년에만들어졌다.그무렵대개수많은IT시스템을보유한기업은각시스템을어떻게해서든연결하고자메시징을사용하고있었다.‘발행-구독(pubsub)’이나‘큐(queue)’같은전문용어는순전히메시징을다루는괴짜나높은연봉을받는통합컨설턴트에게만해당되었다.하지만알다시피세상은이전과다르게놀랍도록발전했고,우리는그이유를조금이나마깨닫게되었다.
오늘날의소프트웨어와웹애플리케이션규모는발빠르게증가하고있다.아울러각사용자,애플리케이션,장치,장소를연결하는방법은여러확장가능한애플리케이션을개발해야하는필요성을대두시켰다.동시에새로운애플리케이션은사용된언어나API와무관하게기존시스템과서비스를통합해야한다.이런종류의환경에서확장성을제공하는유일한방법은메시징을사용하는것이고,최선의방법은RabbitMQ같은제품을이용하는것이다.정말강력하고신뢰할만한,더불어사용하기쉬운메시징도구가없었기에RabbitMQ프로젝트를시작했다.직접만들기로결정한것이다.여러분도RabbitMQ가마음에들기를바란다.
RabbitMQ가실제로더나은애플리케이션을구축할수있도록여러도구를설계하고있는점도흥미롭다.도구는사용하기에따라여러분의시스템과함께성장할수있다.도구의간편성과강력한기능사이의균형조절은쉽지않지만,우리가생각하기에RabbitMQ는적절히균형을이룬다.개발자는대개복잡하고터무니없는문제에어느정도의내성을가지고있기때문이다.하지만믿기지않을만큼모든것이완벽해보이는도구는주의하자!분명이처럼의심스러운도구는장애를발생시키기때문이다.정말단순한시스템은필요할때그능력을발휘한다.RabbitMQ는절대로기능을거짓으로소개하거나숨기려하지않는다.우리는이것이야말로훌륭한도구의필수조건이라믿는다.
이책에서는메시징을사용해탄탄하고확장가능한애플리케이션을설계할수있는방법,그리고이에따라RabbitMQ가제공하는기능을보여준다.독자여러분모두가메시징의기초개념을갈고닦을수있을것이다.자,이제책장을넘겨RabbitMQ와의여행을시작하자!
-알렉시스리처드슨(AlexisRichardson)/래빗테크놀로지스(RabbitTechnologies)의전CEO
★이책에서다루는내용★
■메시징애플리케이션구축과RabbitMQ의개념
■애플리케이션개발을향상시키기위한RabbitMQ구현방법
■메시지발행,메시지수신,메시지거절
■다이렉트,토픽,팬아웃,헤더익스체인지를사용한메시지라우팅
■자바와루비를사용한애플리케이션수신함과방송설비시스템구축
■파이썬클라이언트를사용한애플리케이션트래픽분석
■스마트한메시지라우팅,클러스터링,페더레이션을사용한위급상황대처
■메시지를추적하는방법을습득하기위한애플리케이션상태모니터링
★이책의대상독자★
전문적으로엔터프라이즈메시징제품을개발하고있거나이미오픈소스메시징소프트웨어에친숙한독자라면새로운도전에목말라있을것이다.여러분은이책을통해갈증을해소할수있다.책의예제를최대한활용하기위해서는자바,루비,파이썬을어느정도숙지해야한다.하지만다른RabbitMQ서적에서는찾아볼수없는풍부한가이드를제공하므로독자모두가부담없이시작할수있다.
★이책의구성★
1장‘메시징,도약의첫걸음’에서는메시징시스템의개념과이점을소개한다.AMQP와RabbitMQ를소개하고RabbitMQ를설치하고구성하는방법을학습한후애플리케이션개발을시작할준비를갖춘다.
2장‘애플리케이션수신함만들기’는RabbitMQ에서간단한메시지수신함을만드는방법을설명한다.아울러RabbitMQ에연결하는방법과다이렉트익스체인지(directexchange)와토픽익스체인지(topicexchange)를발행하고,큐에서메시지를가져오는방법을학습한다.
3장‘서버푸시로전환’에서는메시지를소비하고최종사용자에게메시지를라우팅하는효율적인방법을설명한다.팬아웃익스체인지(fanoutexchange)를소개하고,단한건의메시지만발행해서수많은큐에메시지를전송할수있는방법을학습한다.
4장‘애플리케이션로그처리’는이전장에서배운개념을토대로애플리케이션사용데이터를수집하는방법을설명한다.아울러서비스품질에대해알아보고성능을향상시킬수있는방법과RabbitMQ애플리케이션부하테스트를수행하는방법을학습한다.
5장‘메시지전달처리’에서는RabbitMQ의확장기능을사용하여전달되지않은메시지를만료하고이를처리하는방법을살펴본다.아울러성공적으로메시지를전달하는데사용하는일반적인방법을학습한다.
6장‘스마트메시지라우팅’은헤더익스체인지(headerexchange)가메시지속성을기반으로라우팅을수행하는방법을살펴본다.아울러요청-응답상호작용방식이어떻게RabbitMQ와잘이뤄질수있는지학습한다.
7장‘운영환경에RabbitMQ설정’에서는RabbitMQ브로커가장애상황에대비한다양한전략을소개하고,클러스터링(clustering)과페더레이션(federation)을학습한다.아울러운영환경을순조롭게다룰수있도록RabbitMQ모니터링방법을설명한다.
8장‘애플리케이션테스팅과추적’에서는분산시스템내에서의도전과제와어떤완화(mitigation)전략이도움이되는지설명한다.
부록‘메시지스키마’에서는다양한예제에서다룬메시지를JSON형태로명시하여모든스키마를기술한다.
★저자서문★
RabbitMQ는AMQP프로토콜을구현한오픈소스메시징브로커로,지난몇년간나날이인기가치솟고있다.초기에는일부혁신적인기업만사용했으나현재는여러기업에서RabbitMQ의특징과소프트웨어공학에서메시징을사용하는긍정적인측면을모색중이다.실제로클라우드컴퓨팅의출현으로시스템규모를유연하게조정할필요성이대두된것이다.따라서느슨하게결합된시스템에서RabbitMQ같은브로커를통해메시지를전달하는방법은이러한필요성을충족시킬수있다.