'qpid'에 해당되는 글 4건

카테고리 없음

QPID의 Dynamic Routing에 대해서 알아본다.

Dynamic Routing은 브로커의 연결에 대한 단순한 구조를 제시한다. 브로커를 Dynamic Routing으로 설정하게 되면, 관리자는 브로커들의 연결에 대한 네트워크 구조의 논리적인 토폴로지를 구성해야 한다.
Queue 설정과 Binding은 네트워크에 속한 브로커가 자동으로 처리해준다.

동적 라우팅(Dynamic Routing)은 Distributed Exchange concept를 활용한다. 클라이언트의 관점에서 보면 네트워크 내의 모든 브로커들의 논리적인 exchange는 동일한 하나의 브로커가 하나의 exchange를 운영하는 것처럼 보이게 된다.

각 클라이언트는 로컬 브로커에 연결하고 바인딩할 수 있다. 그렇기에 큐를 분산시킬 수 있으며, 메시지를 교환할 수 있다.

미완성
카테고리 없음
QPID의 route 설정에서 Durable 옵션에 대해서 알아본다.

Durable 옵션의 경우 qpid-route 툴로 link를 구성할 시에 옵션으로 줄 수 있는데, 이 것은 연결이 말그대로 Durable해야 한다는 것을 의미한다. 즉 브로커의 생명주기가 재시작을 하여도 계속 이어져야 한다는 것을 의미한다.
만약 브로커가 shutdown되고 재시작을 하게 되면 그 브로커는 링크에 다시 접속을 재시도하여 링크를 계속 이어갈려고 할 것이다.
non durable 링크는 durable링크를 만들 수 있지만, 그 반대는 불가능하다.
카테고리 없음
QPID에서 Link의 Life Cycle에 대해서 알아본다.

Link가 만들어질 때 브로커는 Peer브로커와 전송레벨에서 연결을 시도하게 된다.
만약 그 연결이 실패하게 되면 브로커는 설정된 인터벌만큼 재시도를 하게 되며 연결시 인증 실패로 인하여 연결이 실패되게 되었을 때는 재시도를 하지 않는다. 그렇게 되면 관리자가 인증을 해결하기 위해서 재 설정을 해야한다.

카테고리 없음

dependency

# yum install boost-devel e2fsprogs-devel pkgconfig gcc-c++ make autoconf automake ruby libtool help2man doxygen graphviz uuid-devel libuuid-devel openssl-devel python-devel rpmlint librdmacm librdmacm-devel

# yum install apr cppunit cppunit-devel perl perl-devel libacl libacl-devel

# yum install openais-devel cman-devel

# yum install corosync-devel cmanlib-devel

# yum install corosynclib-devel clusterlib-devel

# yum install cyrus-sasl-devel nss-devel nspr-devel nss-tools*

# yum install xqilla-devel xerces-c-devel

# yum install ruby ruby-devel swig


change account 

# su alloe

$ cd ~

$ mkdir src

$ cd src

download source 

$ svn co http://svn.apache.org/repos/asf/qpid/trunk/qpid qpid &

$ cd qpid

build and install qpid-tools

$ qpid-autotools-install --prefix=$HOME/qpid-tools --skip-check

setting environment

your environment file edit (ex. .bash_profile, .bashrc, /etc/profile)

export PATH=~/qpid-tools/bin:$PATH
export PKG_CONFIG_PATH=~/qpid-tools/lib/pkgconfig:/usr/local/pkgconfig
export CXXFLAGS=-I~/qpid-tools/include/boost-1_33_1

build and install qpid source

$ sudo ./bootstrap

$ sudo ./configure --enable-valgrind 

$ sudo make && make install

$ sudo make check

run corosync for cluster

$ cp -rf /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf

$ sudo /usr/sbin/corosync

python qpid tools

$ cd ..

$ pwd

/home/alloe/src/qpid

$ cd extra

$ cd qmf

$ sudo ./setup.py --help-commands

Standard commands:
  build            build everything needed to install
  build_py         "build" pure Python modules (copy to build directory)
  build_ext        build C/C++ extensions (compile/link to build directory)
  build_clib       build C/C++ libraries used by Python extensions
  build_scripts    "build" scripts (copy and fixup #! line)
  clean            clean up temporary files from 'build' command
  install          install everything from build directory
  install_lib      install all Python modules (extensions and pure Python)
  install_headers  install C/C++ header files
  install_scripts  install scripts (Python or otherwise)
  install_data     install data files
  sdist            create a source distribution (tarball, zip file, etc.)
  register         register the distribution with the Python package index
  bdist            create a built (binary) distribution
  bdist_dumb       create a "dumb" built distribution
  bdist_rpm        create an RPM distribution
  bdist_wininst    create an executable installer for MS Windows
  upload           upload binary package to PyPI

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

$ sudo ./setup.py build

$ sudo ./setup.py install

result

$ ll /usr/lib/python2.6/site-packages/qmf/

-rw-r--r--. 1 root root    791 2011-11-22 22:25 __init__.py
-rw-r--r--. 1 root root    135 2011-11-23 14:36 __init__.pyc
-rw-r--r--. 1 root root 136778 2011-11-22 22:25 console.py
-rw-r--r--. 1 root root 127600 2011-11-23 14:36 console.pyc

$ cd ..

$ cd ..

$ pwd
/home/alloe/src/qpid

$ cd java

$ sudo yum install ant-trax

$ ant clean build

$ cd ..

$ cd python

$ sudo ./setup.py build

$ sudo ./setup.py install

$ sudo ./qpid-python-test > test.result.txt

$ vim test.result.txt

..............

qpid.tests.messaging.message.MessageEchoTests.testReplyToQueueSubject ... pass
qpid.tests.messaging.message.MessageEchoTests.testReplyToTopic .......... pass
qpid.tests.messaging.message.MessageEchoTests.testReplyToTopicSubject ... pass
qpid.tests.messaging.message.MessageEchoTests.testStringContent ......... pass
qpid.tests.messaging.message.MessageEchoTests.testTextPlain ............. pass
qpid.tests.messaging.message.MessageEchoTests.testTextPlainEmpty ........ pass
qpid.tests.messaging.message.MessageEchoTests.testUnicodeContent ........ pass
qpid.tests.messaging.message.MessageTests.testContentTypeOverride ....... pass
qpid.tests.messaging.message.MessageTests.testCreateList ................ pass
qpid.tests.messaging.message.MessageTests.testCreateMap ................. pass
qpid.tests.messaging.message.MessageTests.testCreateString .............. pass
qpid.tests.messaging.message.MessageTests.testCreateUnicode ............. pass
Totals: 308 tests, 308 passed, 0 skipped, 0 ignored, 0 failed

$ cd ..

$ cd tools

$ sudo ./setup.py build

$ sudo ./setup.py install



complete 
1
블로그 이미지

개발자

우와신난다