전체 글(271)
-
오래간만에 Netty- (1)Writing a Discard Server
http://netty.io/wiki/user-guide-for-4.x.html 튜토리얼 해석 놀이~~~ Getting Started 네티의 핵심 구성에 대해 아주 빠르게 숙지 할수 있는 예제들을 보도록 하겠습니다.예제를 마칠 무렵이면, 네티를 이용해서 서버와 클라이언트가 완성되어 있을 겁니다. 혹시 하향식 접근방식을 더 좋아하면,2장 아키텍처 개론 부터 시작하고 나서 여기로 다시 오면 됩니다. Before Getting Started 예제를 시작하는데 있어서 최소 요구사항으로 Netty의 가장 마지막 버전 과 JDK 1.6 이상의 JDK 딱 두개면 됩니다. 마지막 버전의 네티는 프로젝트 다운로드 페이지에서 찾아보시고, JDK를 다운로드 하려면, 여러분이 좋아하는 벤더의 웹사이트에서 참고하시길 바랍니다...
2017.05.19 -
RabbitMQ Tutorial - 6. RPC
Remote Procedure Call (RPC) 두번째 튜토리얼에서 다수의 작업자들사이에 시간이 소요되는 업무에 대해서 분산처리하는 Work Queue에 대한 사용법에 대해서 배웠습니다. 원격 컴퓨터에서 함수를 호출하고 그 결과를 기다려야 할 필요가 있다면?글쎄, 그런 좀 어려운 이야기 인데.이 패턴은 일반적으로 RPC 라고 알려진 패턴이죠. 이 튜토리얼에서는 클라이언트 와 확장가능한 RPC 서버 -RPC 시스템을 빌드하기위해 RabbitMQ을 사용 할 것입니다.분산처리할 가치가 있는 시간이 걸리는 업무를 갖고 있지 않기 때문에, 우리는 피보나치 수열(Fibonacci numbers)을 리턴하는 더미 RPC 서비스를 만들도록 하겠습니다. 1. Client interface RPC 서비스를 사용할수 있는..
2017.05.17 -
RabbitMQ Tutorial - 5. Topics
Topics : Receiving messages based on a pattern (topics) 이전 장에서는 우리 로깅 시스템을 발전시켰습니다.오직 더미 방송하는 능력의 fanout Exchange를 사용하는 대신에direct Exchange를 사용했고, 로그를 선택적으로 받는 가능성을 얻었습니다. 우리 시스템을 발전시키기 위해 direct Exchange를 사용하는 것 역시, 제한을 가지고 있습니다.- 여러가지 조건(multiple criteria)에 기반한 라우팅을 할수 없습니다. 우리 로깅 시스템에서 오직 severity에 기반한것 외에도, 로그가 발행된 소스 상의 로그들도 구독하길 원할수도 있습니다. severity(info/warn/crit...) 와 facility(auth/cron/ke..
2017.05.17 -
RabbitMQ Tutorial -4. Routing
Routing : Receiving messages selectly 앞선 튜토리얼에서는 간단한 로깅 시스템을 만들었죠.많은 수신자들에게 로그 메시지들을 방송할 수 있었습니다. 이 튜토리얼에서, 거기에 기능 한개를 추가하도록 할께요.오직 메세지들의 부분집합(subset).. 특정 메시지들만 구독 가능하게 만들겁니다.예를 들어, 로그 파일(디스크 영역에 저장하기 위해)에 치명적인 에러 메시지만 전달할수 있게 하고, 반면, 모든 로그 메시지는 콘솔에 출력할께요. 1.Bidings 앞서서 바인딩은 만들었고, 여러분은 재호출 할 코드는 아래와 같습니다. channel.queueBind(queueName, EXCHANGE_NAME, ""); 바인딩은 exchange 와 queue 간의 관계죠.이건 "이 큐는 이 e..
2017.05.16 -
RabbitMQ Tutorial -3. Publish / Subscribe
요약 메시지가 특정 큐에 추가되어야만 하나? 메시지가 많은 큐들에 추가되어야만 하나?아니면 메시지가 버려져야 하나? 이것에 대한 규칙은 exchange type에 의해 정의된다.queueDelcare()에 파라미터를 넣지 않았을때, 비영속적이고, 베타적이며, 자동 삭제되는 큐를 생성해준다. exchange와 큐와의 관계를 binding이라고 합니다. 앞서선, work queue를 만들었죠.work queue은 정확하게 하나의 작업자에게 배달 된다는 것이다라는 것이 work queu의 뒤에 가정입니다.이번에는 하나의 메시지를 여러개의 작업자에게 배달하는 것이다.해당 패턴이 publish / subscribe 로 알려졌다. 해당 패턴을 설명하기 위해서, 간단한 로깅 시스템을 만들어 본다.이것은 두개의 프로그..
2017.05.16 -
RabbitMQ Tutorial -2. Work Queues
정리하면 아래와 같다. 다수의 Consumer를 만들어 대기를 시키면... RabbitMQ에서는 Round-Robin 분배를 통해,비어있는 Consumer에게 메시지를 보냅니다. 공정하게 분배 하는 설정도 있으며,basicQos 메소드를 prefetchCount = 1 설정하면, RabbitMQ에게 작업자가 한번에 하나 이상의 메시지를 주지 않도록 한다.Consumer는 RabbitMQ에게 ack(nowlgdegment)을 되돌려 주는데.이는 특정 메시지가 처리되었음을 알려주고, RabbitMQ가 저장된 해당 메시지를 지울 수 있게 해 준다. 또한 RabbitMQ 서버가 죽어 있더라도.. 메시지들이 사라지지 않는 내구력을 보장해주고 있는데, RabbitMQ가 queue을 잊지 않기 위해, queue를 d..
2017.05.16