DB&NoSQL(28)
-
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 -
RabbitMQ Tutorial -1. Producer, Queue, Consumer의 정의와 Message Send & Receive
RabbitMQ의 튜토리얼을 읽어보도록 합니다 Hello World - The simplest thing that does somethinghttps://www.rabbitmq.com/tutorials/tutorial-one-java.html 1.Introduction RabbitMQ는 메시지 브로커 입니다: 메세지들을 받고 전달합니다.우체국과 같다고 볼수 있는데요, 여러분이 메일을 우체통에 넣을땐, 우체부가 수신자에게 메일을 배달해줄것이라 확신할수 있죠.이런것처럼, RabbitMQ는 우체통, 우체국 그리고 우체부 랍니다. RabbitMQ와 우체국가 가장 다른 점은 종이를 다루지 않고, 이진 데이터 덩어리인 메시지들을 받고, 저장하고 전달하는 것입니다. RabbitMQ 와 일반적인 메시징은 몇가지 특정 ..
2017.05.16 -
Messaging with RabbitMQ
https://spring.io/guides/gs/messaging-rabbitmq/#scratch메시지를 게시(publish)하고 구독(Subscribe)하는 RabbitMQ AMQP 서버를 셋업하는 절차를 알려드리도록 하겠습니다. 빌드 대상 Spring AMQP의 RabbitTempate를 사용해서 메시지를 게시(publish)하고,MessageListenerAdaper를 사용해서 POJO 로 메시지를 구독(subscribe)하는 어플리케이션을 빌드합시다. 필요 조건 - 15분쯤- 즐겨쓰는 텍스트 에디터 나 IDE- JDK 1.8 이상- Gradle 2.3 이상 혹은 Maven 3.0 이상- 여러분 IDE에 직접 코드를 임포트 할수 있습니다 - STS - IntelliJ IDEA - RabbitMQ ..
2017.05.11 -
MYSQL 백업 과 복구
이하는 사내에 Mysql DB를 사용함에 있어서, 백업시스템 부제 및 DB 유실 사고에 대한 대처 방법에 대해서 정리 했습니다.Replication은 사용중에 있으나, 인위적으로 SQL Injection 공격등에 의해 데이터가 유실 되었을때는,Binary log를 사용해서 복구를 하는 방법등이 있습니다. 1. Mysql의 바이너리 로그 바이너리 로그에는 데이터를 지금 또는 나중에 업데이트하는 모든 명령문이 기록되어 있다.명령문은 데이터 수정을 가리키는 “이벤트 (event)” 형태로 저장된다.바이너리 로그는 각 명령문이 데이터를 업데이트하는 소비 시간 정보도 가지고 있다.바이너리 로그에는 SELECT 또는 SHOW와 같이 데이터를 수정하지 않는 명령문은 기록되지 않는다.만약에 여러분이 모든 명령문을 로그..
2015.12.06