IT/오픈소스2013.04.18 13:33

현재 JMS의 Queue기능을 사용코자 고려하여 선별한 오픈소스가 현재 테스트중인 HornetQ, ActiveMQ가 있고 AMQP를 사용한 RabbitMQ 입니다. 

타룬이 결국 Queue의 대체안이 없을 경우 사용한다는 전제하이고, 윤성종책임님과 제가 진행중인것은 큐를 적용한 버젼이므로 큐에 대한 확정을 하고자 이글을 씁니다.


우선 성능비교를 해보겠습니다. 

이 자료는 구글에서 제일 상단에 조회되는 최근 벤치마킹 자료글을 참조하였습니다. (여기 참조)

시나리오는 키정보를 담기 위함이므로 메시지 사이즈는 32byte, 그리고 worst case를 고려한 200,000건의 메시지가 동시에 enqueuing과 dequeuing이 일어나는 시나리오 C를  선택하여 성능비교를 하겠습니다.

위 시나리오로 제품 비교한 그래프는 다음과 같습니다.

참고) AMQP에 대한 얘기는  이 벤치마크 자료를 보면 RabbitMQ가 AMQP와 STOMP버젼이 두개가 있어 비교를 해보면 훨씬 빠른것처럼 보이나 아래와 같이 분명 경고글은 있습니다.


그럼 결과 확인전에 상기할 것은 여기 벤치마크는 단일큐를 가지고 성능을 비교한 것입니다. 그래서 RabbitMQ나 Hornetq같이 database persistence를 지원하지 않는 JMS도 persistent라고 표현 한 것이구요. 그래서 제가 직접 이 벤치마크를 한 분에게 질문을 드렸더니 아래와 같이 상세하게 답변을 주셨습니다.  


자, 그러면 Database Persistence가 필요하다고 하면 HornetQ, RabbitMQ도 제외가 됩니다. 그리고 대안은 ActiveMQ로 가는수밖에 없구요.

어제 Tarun이 얘기한 replicatoin을 써서 failover가 커버 가능하다고 했는데 아래는 제가 찾은 인터넷에 레퍼런스 정리입니다.  

1 ) HornetQ는 JBoss Messaging Server의 자식인데, 이 부모의 Database Persistance 기능이 없어지고  File Persistance(Journal이라고 부름)로 가면서 Failover에 대해서 100% 보장은 못한다는 의견이 많다. 그리고 현재 production system에서는 여전히 JBoss Messaing Server가 Database persistence 기능 때문에 업데이트없이 여전히 많이 사용중이라고 합니다.

2)  현재 HornetQ 최근 릴리즈된 버젼에 벤치마크 관련 얘기가 830만건의 메시지를 1초에 처리한다고 성능테스트 자료도 나와있다. 하지만 메시지 유실에 가능성은 있다고 분명히 언급이 되어 있다...   


마지막으로 RabbitMQ에 대한 얘길 적어보겠습니다.  성능이 좋은 프로토콜인  AMQP 얘기가 나오면서 대안으로 나왔는데 Database Persistence 가 지원이 안됩니다. Mnesia라는 데이터베이스( 분산형 데이터베이스 소프트웨어)에 자체 내부적으로 사용하여 RAM용량이 없을 경우에만 허용한다고 한다. (여기 참조)


그래서 제 생각은 ActiveMQ로 가는게 맞다고 봅니다. Databse Persistence가 없이 Clustered Queue의 Failover 처리가 완벽하다면 성능이 좋은 RabbitMQ (AMQP) 로 가는게 좋구요.


----

같은 레드햇에서 JBoss HornetQ와 MRG에 대해 비교하는 글이 있네요

https://community.jboss.org/thread/167032?tstart=0

신고

'IT > 오픈소스' 카테고리의 다른 글

HornetQ vs ActiveMQ vs RabiitMQ  (0) 2013.04.18
자동 테스트 데이터 생성 오픈소스, Databene Benerator  (0) 2013.02.19
Posted by 억사마
IT/Tool2013.04.01 15:41

Git

아래 내용은 필자의 프로젝트 적용시에 좌충우돌 겪으면서 간단한 레퍼런스는 넘어 트러블슈팅했던 내용을 담아 Git에 대해 일기같이 기록을 담아둘려고 적는 기록이다.


1. GitHub 등록

2. http://code.google.com/p/msysgit/downloads/list 가서 window용 Git 다운

3. Reference 

Git 배우는데 최고봉 -> http://learnbranch.urigit.com/

 http://rogerdudler.github.com/git-guide/index.ko.html 

 http://gitready.com/

 http://www.dreamy.pe.kr/zbxe/CodeClip/95408

 http://blog.outsider.ne.kr/865

 http://gitref.org/index.html

 http://rocksea.tistory.com/entry/github-github-%EC%82%AC%EC%9A%A9%EB%B2%95

 http://www.dreamy.pe.kr/zbxe/CodeClip/95408



git command 

 설명

 git config --list

 config 내용 조회

 git config --global http.proxy http://168.219.61.252:8080

 git proxy를 설정하는 부분(여기참조)이며 ://와 Ip사이에 id@pw로 내용을 입력하여 설정하여 사용 가능

 git config --global color.status auto  콘솔모드에서 글자 하이라이트 설정하는 명령어
 git config --global color.branch auto
 git diff  변경사항들을 diff명령으로 확인하기 
 git log  커밋 히스토리 확인하기
 git commit --amend -m "More changes - now correct"  커밋 메세지 수정하기

 git init

 저장소 만들기

 git clone https://~

 로컬로 받아오기~
 git log 로그를 통해 commit id 찾는다.
 git reset --hard 7c21ab3ea 7c21ab3ea에 해당되는 push 버젼으로 local branch reset를 한다.
 git push origin +master 강제로 conflict를 무시하고 강제로 push 
 git stash stack 구조로 현재 local의 working tree 보관 
 git pop 위에 쌓은걸 꺼내오기


 



git ignore


.gitignore 파일 입력 규칙

- 아무것도 없는 라인이나, #로 시작하는 라인은 무시한다.

- 표준 Glob 패턴을 사용한다.

- 슬래시(/)로 시작하면 하위 디렉토리에 적용되지(Recursivity) 않는다.

- 디렉토리는 슬래시(/)를 끝에 사용하는 것으로 표현한다.

- 느낌표(!)로 시작하는 패턴의 파일은 무시하지 않는다.


#Git bash 명령어 - .gitignore 적용하기


#1. .ignore파일을 작성한다.


#2. 모든 파일을 git index에서 제거 한다.(무시대상 파일 뿐만아니라 전부 index에서 삭제)

git rm -r --cached .


#3. 다시 index에 추가 한다.(이때 무시대상 파일을 제외한 나머지 파일만 추가됨)

git add .


#4. 적절한 메세지와 함께 commit

git commit -m '.gitignore 적용'


#5. 다른 사람과 공유할 준비가 되었다면 push

git push origin [branch_name]




Reference 

http://gitready.com/beginner/2009/01/21/pushing-and-pulling.html



신고

'IT > Tool' 카테고리의 다른 글

PowerShell 익숙해지기.  (0) 2015.03.03
Git  (0) 2013.04.01
캡쳐부터 자동 웹업로드되는 막강 툴! Cropper!  (0) 2013.03.25
JMeter  (0) 2013.02.26
JMeter - Java Request  (0) 2013.02.18
Posted by 억사마
TAG git
IT/Tool2013.03.25 11:17

최근에 기술 관련 문의가 많아서 영작에도 어려움을 겪고 그림도 올리려고 하면 일일이 캡쳐하고 그걸 다시 업로드해서 붙여서 이걸 어떻게 하면 간단하게 해결할까? 하는 고민에 stackoverflow를 찾아보니 간단히 해결되는 툴을 찾았다.

Cropper라는 툴인데 플러그인까지 같이 깔면 자동으로 캡쳐도 하고 그걸 웹으로 올려주고 링크를 따주기 때문에 뭔가 그림 첨부할때 상당히 편하다고 볼 수 있다.


우선 Cropper와 확장 플러그인을 받아야한다.

1) Cropper에 가서 Downloads에서 최신 버젼 다운로드

2) Cropper 확장플러그인 사이트 가서 최신 버젼 다운로드

3) 1)번 설치하고 설치폴더하위에 plugins에 2번에서 다운로드한 걸 압축을 풀어 dll파일 추가 (C#으로 만들어진 플러그인이라고 함 dll형식)

(위는 Cropper의 Imgur 플러그인 사용하여 캡쳐해서 Imgur에 업로드하고 링크딴 걸 첨부로 붙였다.)

4) 그다음 실행하면 시스템 트레이콘으로 생기고 실행을 해보자

5) 옵션에 가서 우선 Output을 자신이 원하는 사진업로드사이트 선택하는데 저같은 경우는 Imgur로 선택을 하기로 한다. "Send to Imgur"선택 

(imageStack의 경우는 별도의 인증절차 없이 사용가능하다)


6) Imgur같은 경우 처음에만 인증키 입력을 하라고 나오면 가서 해당 사이트에 회원가입하 인증키를 받아 넣으면 사용가능




신고

'IT > Tool' 카테고리의 다른 글

PowerShell 익숙해지기.  (0) 2015.03.03
Git  (0) 2013.04.01
캡쳐부터 자동 웹업로드되는 막강 툴! Cropper!  (0) 2013.03.25
JMeter  (0) 2013.02.26
JMeter - Java Request  (0) 2013.02.18
Posted by 억사마
TAG cropper