티스토리 뷰
메시지큐(message queue)를 사용 할 일이 생길거 같아 관련 내용들을 급하게(!) 찾아봄.
사실 전부터 메시지큐잉에 대해 관심(?)이 있긴 했지만, 이제야 살짝 맛을 보게 됨. ㅡ.ㅡ;;;
하지만 이번 글도 역시나 퀵가이드에 가까운.. 그냥 수박 겉핥기 식! 임.. :)
* 일단, jms 관련 간단설명 블로그
메시지큐잉을 위해 RabbitMQ 를 사용하기로 함.
홈페이지 : http://www.rabbitmq.com/
다운로드 : http://www.rabbitmq.com/download.html
다양한 언어로 client를 지원하고, 더더군다나 홈페이지에서 예제로 설명하는 client 가 자바와 파이썬이라 자바기반의 앱을 개발하는 나로썬 괜찮은 선택이라 생각했음.
우선, 바이너리부터 다운로드하자~
1. 위의 다운로드 페이지에서 서버플랫폼 중에서 Fedora/RHEL 을 선택~!
(개발 및 상용장비가 CentOS임)
2. http://www.rabbitmq.com/install-rpm.html 에서 친절히 설명해 주는 대로 설치 시작~!
RabbitMQ는 Erlang이란 언어로 만들어졌다(?)는데, 그래서 인지 RabbitMQ를 설치하기 전에 Erlang을 먼저 설치해야 한다. 이 페이지에서는 크게 3가지 방법을 제시하는데,
첫번째 방법을 사용해 본다.
우선 http://fedoraproject.org/wiki/EPEL/FAQ#howtouse 에서 epel 을 설치한다.
[root@dev rabbitmq_install]# su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm'
http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm(을)를 복구합니다
경고: /var/tmp/rpm-tmp.JISECd: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
준비 중... ########################################### [100%]
1:epel-release ########################################### [100%]
yum install erlang
뭔가 주르륵주르륵 지나가면서 열심히 설치함. ㅡ.ㅡa;;; 아래 화면처럼 나오면 되는 건가??
Installed: erlang.x86_64 0:R14B-04.3.el6 Dependency Installed: erlang-appmon.x86_64 0:R14B-04.3.el6 erlang-asn1.x86_64 0:R14B-04.3.el6 erlang-common_test.x86_64 0:R14B-04.3.el6 erlang-compiler.x86_64 0:R14B-04.3.el6 erlang-cosEvent.x86_64 0:R14B-04.3.el6 erlang-cosEventDomain.x86_64 0:R14B-04.3.el6 erlang-cosFileTransfer.x86_64 0:R14B-04.3.el6 erlang-cosNotification.x86_64 0:R14B-04.3.el6 erlang-cosProperty.x86_64 0:R14B-04.3.el6 erlang-cosTime.x86_64 0:R14B-04.3.el6 erlang-cosTransactions.x86_64 0:R14B-04.3.el6 erlang-crypto.x86_64 0:R14B-04.3.el6 erlang-debugger.x86_64 0:R14B-04.3.el6 erlang-dialyzer.x86_64 0:R14B-04.3.el6 erlang-diameter.x86_64 0:R14B-04.3.el6 erlang-docbuilder.x86_64 0:R14B-04.3.el6 erlang-edoc.x86_64 0:R14B-04.3.el6 erlang-erl_docgen.x86_64 0:R14B-04.3.el6 erlang-erl_interface.x86_64 0:R14B-04.3.el6 erlang-erts.x86_64 0:R14B-04.3.el6 erlang-et.x86_64 0:R14B-04.3.el6 erlang-eunit.x86_64 0:R14B-04.3.el6 erlang-examples.x86_64 0:R14B-04.3.el6 erlang-gs.x86_64 0:R14B-04.3.el6 erlang-hipe.x86_64 0:R14B-04.3.el6 erlang-ic.x86_64 0:R14B-04.3.el6 erlang-inets.x86_64 0:R14B-04.3.el6 erlang-inviso.x86_64 0:R14B-04.3.el6 erlang-jinterface.x86_64 0:R14B-04.3.el6 erlang-kernel.x86_64 0:R14B-04.3.el6 erlang-megaco.x86_64 0:R14B-04.3.el6 erlang-mnesia.x86_64 0:R14B-04.3.el6 erlang-observer.x86_64 0:R14B-04.3.el6 erlang-odbc.x86_64 0:R14B-04.3.el6 erlang-orber.x86_64 0:R14B-04.3.el6 erlang-os_mon.x86_64 0:R14B-04.3.el6 erlang-otp_mibs.x86_64 0:R14B-04.3.el6 erlang-parsetools.x86_64 0:R14B-04.3.el6 erlang-percept.x86_64 0:R14B-04.3.el6 erlang-pman.x86_64 0:R14B-04.3.el6 erlang-public_key.x86_64 0:R14B-04.3.el6 erlang-reltool.x86_64 0:R14B-04.3.el6 erlang-runtime_tools.x86_64 0:R14B-04.3.el6 erlang-sasl.x86_64 0:R14B-04.3.el6 erlang-snmp.x86_64 0:R14B-04.3.el6 erlang-ssh.x86_64 0:R14B-04.3.el6 erlang-ssl.x86_64 0:R14B-04.3.el6 erlang-stdlib.x86_64 0:R14B-04.3.el6 erlang-syntax_tools.x86_64 0:R14B-04.3.el6 erlang-test_server.x86_64 0:R14B-04.3.el6 erlang-toolbar.x86_64 0:R14B-04.3.el6 erlang-tools.x86_64 0:R14B-04.3.el6 erlang-tv.x86_64 0:R14B-04.3.el6 erlang-typer.x86_64 0:R14B-04.3.el6 erlang-webtool.x86_64 0:R14B-04.3.el6 erlang-wx.x86_64 0:R14B-04.3.el6 erlang-xmerl.x86_64 0:R14B-04.3.el6 libtool-ltdl.x86_64 0:2.2.6-15.5.el6 tcl.x86_64 1:8.5.7-6.el6 tk.x86_64 1:8.5.7-5.el6 unixODBC.x86_64 0:2.2.14-12.el6_3 wxBase.x86_64 0:2.8.12-1.el6.centos wxGTK.x86_64 0:2.8.12-1.el6.centos wxGTK-gl.x86_64 0:2.8.12-1.el6.centos Dependency Updated: zlib.x86_64 0:1.2.3-29.el6 zlib-devel.x86_64 0:1.2.3-29.el6 Complete!
이제 RabbitMQ를 실행시킨다.(root 권한으로 실행시켜봄)
cd ${rabbitmq_home}/sbin
./rabbitmq-server start
ERROR: epmd error for host "dev": address (cannot connect to host/port)
역시나 한번에 될 리가 없는.. ㅜㅜ;
/etc/hosts 파일에 아래 내용 추가.
127.0.0.1 dev
그리고 다시 실행하니.. 뭔가(?) 되는가 싶더니만 역시나 fail..
[root@dev sbin]# ./rabbitmq-server start
RabbitMQ 3.2.3. Copyright (C) 2007-2013 GoPivotal, Inc.
## ## Licensed under the MPL. See http://www.rabbitmq.com/
## ##
########## Logs: ./../var/log/rabbitmq/rabbit@dev.log
###### ## ./../var/log/rabbitmq/rabbit@dev-sasl.log
##########
Starting broker...
BOOT FAILED
===========
Error description:
{could_not_start_tcp_listener,{"::",5672}}
Log files (may contain more information):
./../var/log/rabbitmq/rabbit@dev.log
./../var/log/rabbitmq/rabbit@dev-sasl.log
Stack trace:
[{rabbit_networking,start_listener0,4},
{rabbit_networking,'-start_listener/4-lc$^0/1-0-',4},
{rabbit_networking,start_listener,4},
{rabbit_networking,'-boot_tcp/0-lc$^0/1-0-',1},
{rabbit_networking,boot_tcp,0},
{rabbit_networking,boot,0},
{rabbit,'-run_boot_step/1-lc$^1/1-1-',1},
{rabbit,run_boot_step,1}]
BOOT FAILED
===========
Error description:
{could_not_start,rabbit,
{bad_return,
{{rabbit,start,[normal,[]]},
{'EXIT',
{rabbit,failure_during_boot,
{could_not_start_tcp_listener,{"::",5672}}}}}}}
Log files (may contain more information):
./../var/log/rabbitmq/rabbit@dev.log
./../var/log/rabbitmq/rabbit@dev-sasl.log
{"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabbit,{bad_return,{{rabbit,start,[normal,[]]},{'EXIT',{rabbit,failure_during_boot,{could_not_start_tcp_listener,{"::",5672}}}}}}}}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
[root@dev sbin]#
뭔가 에러가 난 거 같은데.. 쫄지않고 찬찬히 살펴보니 요런 메세지가~
Error description:
{could_not_start_tcp_listener,{"::",5672}}
음.. 5672 포트? 그래서 혹시나 하고 포트를 찾아보니..
[root@dev sbin]# netstat -na |grep 5672
tcp 0 0 0.0.0.0:5672 0.0.0.0:* LISTEN
헐.. 뭐지 이녀석은..? 누구냐 넌!!
그래서 녀석의 정체를 알기 위해 구글링한 결과..
http://serverfault.com/questions/342964/centos-qpidd-default-network-service
AMQP 데몬이 이미 사용 중이라는..
[root@dev sbin]# cat /etc/services |grep 5672
amqp 5672/tcp # AMQP
amqp 5672/udp # AMQP
amqp 5672/sctp # AMQP
qpidd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
[ root@pungjoo /root ]# chkconfig qpidd off
[ root@pungjoo /root ]# chkconfig --list qpidd
qpidd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
[ root@pungjoo /root ]#
[ root@pungjoo /root ]# service qpidd stop
Qpid AMQP 데몬을 정지 중: [ OK ]
'About 개발~~' 카테고리의 다른 글
[Spring] Quartz 스케줄러 연동 퀵가이드~ :) (0) | 2014.03.24 |
---|---|
[스마트TV] 삼성 스마트TV 개발환경 셋팅~ (0) | 2014.02.14 |
[자바] GC 관련. (0) | 2014.01.20 |
[netty] 자바 어플리케이션 성능테스트를 위한 VisualVM 사용기~ (0) | 2014.01.15 |
[logback] rolling 시 날짜별로 디렉토리 생성해 보자~ (0) | 2014.01.10 |
- Total
- Today
- Yesterday
- 오토캠핑
- 이클립스
- http
- MySQL
- 무제
- 자바
- java
- 개화예술공원
- 스프링
- spring
- 스마트tv
- network
- 주저리
- 발번역
- 캠핑
- JavaScript
- socket
- db
- 중도캠핑장
- json
- myBatis
- QR코드
- 단상
- 주저리주저리
- SVN
- 중도
- 개발
- 안드로이드
- netty
- 톰캣
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |