RabbitMQ adalah server antrian pesan sumber terbuka yang dapat Anda gunakan untuk membangun aplikasi perpesanan Anda. Secara sederhana, Anda dapat memasukkan pesan ke antrian dari satu aplikasi, dan mengambil pesan dari antrian dari aplikasi yang sama, atau dari aplikasi yang berbeda. Anda bisa menggunakan berbagai macam bahasa pemrograman untuk terhubung ke RabbitMQ, membuat dan mengambil pesan.
Instal Erlang
Agar RabbitMQ berfungsi, Anda harus menginstal Erlang di sistem Anda.
Versi stabil Erlang saat ini adalah R16B, yang dapat diunduh dari situs web Erlang.
cd /usr/save wget http://www.erlang.org/download/otp_src_R16B.tar.gz tar xvfz /usr/save/otp_src_R16B.tar.gz
Setelah mengunduh Erlang, instal versi Erlang R16B dari sumber seperti yang ditunjukkan di bawah ini.
cd otp_src_R16B LANG=C; export LANG ./configure make make install
Verifikasi Erlang
Sekarang, ketika Anda mengetik erl dari baris perintah, Anda akan mendapatkan Erlang Shell seperti yang ditunjukkan di bawah ini. Ini menunjukkan bahwa Anda telah berhasil menginstal Erlang.
# erl Erlang R16B (erts-5.10.1) [source] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] Eshell V5.10.1 (abort with ^G) 1> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution a
Unduh RabbitMQ
Versi stabil server RabbitMQ saat ini adalah 3.0.4. Saat Anda membuka situs web RabbitMQ, Anda akan melihat versi berikut tersedia untuk diunduh untuk platform Linux:1) Debian / Ubuntu 2) Fedora / RHEL 3) Generic Unix 4) Solaris
Dalam contoh ini, saya telah memilih RabbitMQ untuk Generic Unix.
cd /usr/save wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.4/rabbitmq-server-generic-unix-3.0.4.tar.gz tar xvfz rabbitmq-server-generic-unix-3.0.4.tar.gz cd rabbitmq_server-3.0.4
Mulai Server RabbitMQ
Mulai server RabbitMQ dengan melewatkan opsi -detached seperti yang ditunjukkan di bawah ini.
# cd /usr/save/rabbitmq_server-3.0.4 # sbin/rabbitmq-server -detached Warning: PID file not written; -detached was passed.
Jika Anda mendapatkan pesan kesalahan could_not_start_tcp_listener, saat memulai server RabbitMQ, lihat bagian pemecahan masalah di bawah untuk solusi tentang cara memperbaiki masalah ini.
Verifikasi Status RabbitMQ
Gunakan perintah rabbitmqctl untuk memverifikasi status server RabbitMQ dan menghentikannya jika diperlukan.
# sbin/rabbitmqctl status Status of node 'rabbit@db-dev' ... [{pid,30069}, {running_applications,[{rabbit,"RabbitMQ","3.0.4"}, {mnesia,"MNESIA CXC 138 12","4.8"}, {os_mon,"CPO CXC 138 46","2.2.11"}, {sasl,"SASL CXC 138 11","2.3.1"}, {stdlib,"ERTS CXC 138 10","1.19.1"}, {kernel,"ERTS CXC 138 10","2.16.1"}]}, {os,{unix,linux}}, {erlang_version,"Erlang R16B (erts-5.10.1) [source] [smp:4:4] [async-threads:30] [hipe] [kernel-poll:true]\n"}, {memory,[{total,15087368}, {connection_procs,1432}, {queue_procs,2864}, {plugins,0}, {other_proc,4748681}, {mnesia,30672}, {mgmt_db,0}, {msg_index,8652}, {other_ets,369668}, {binary,5976}, {code,6973062}, {atom,387397}, {other_system,2558964}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,1699810508}, {disk_free_limit,1000000000}, {disk_free,913096704}, {file_descriptors,[{total_limit,924}, {total_used,3}, {sockets_limit,829}, {sockets_used,1}]}, {processes,[{limit,1048576},{used,124}]}, {run_queue,0}, {uptime,6}] ...done.
Untuk menghentikan Server RabbitMQ, gunakan perintah rabbitmqctl seperti yang ditunjukkan di bawah ini.
# sbin/rabbitmqctl stop
Pemecahan Masalah
Masalah: Pada CentOS 6, jika Anda telah menggunakan yum untuk menginstal rabbitmq, atau dari sumber seperti yang dijelaskan di atas, dan jika Anda mendapatkan “BOOT FAILED {could_not_start_tcp_listener ,{“::”,5672}}”, Anda mungkin mengalami masalah konflik port.
Solusi: Paket Matahari yang terinstal secara default pada CentOS 6, juga berjalan pada port 5672. Proses ini dimulai secara default. Coba hentikan qpidd (daemon Qpid AMQP), dan lihat apakah itu menyelesaikan masalah. Jika Anda tidak membutuhkan Matahari, Anda juga dapat menghapus instalasi paket matahari, matahari-broker, qpid-cpp-server-ssl dan qpid-cpp-server.
Hentikan daemon qpidd, dan nonaktifkan dari startup sistem menggunakan perintah chkconfig.
# chkconfig --list | grep -i qpid qpidd 0:off 1:off 2:on 3:on 4:on 5:on 6:off # service qpidd stop Stopping Qpid AMQP daemon: [ OK ] # chkconfig qpidd off # chkconfig --list | grep -i qpid qpidd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Sekarang, jika Anda memulai server RabbitMQ, itu akan berfungsi.