RabbitMQ je open source server fronty zpráv, který můžete použít k vytváření aplikací pro zasílání zpráv. Jednoduše řečeno, můžete zařadit zprávu do fronty z jedné aplikace a načíst zprávu z fronty ze stejné aplikace nebo z jiné aplikace. Pro připojení k RabbitMQ, vytváření a načítání zpráv můžete použít širokou škálu programovacích jazyků.
Nainstalujte Erlang
Aby RabbitMQ fungoval, musíte mít na svém systému nainstalovaný Erlang.
Aktuální stabilní verze Erlang je R16B, kterou lze stáhnout z webových stránek Erlang.
cd /usr/save wget http://www.erlang.org/download/otp_src_R16B.tar.gz tar xvfz /usr/save/otp_src_R16B.tar.gz
Po stažení Erlang nainstalujte verzi Erlang R16B ze zdroje, jak je uvedeno níže.
cd otp_src_R16B LANG=C; export LANG ./configure make make install
Ověřte Erlang
Nyní, když zadáte erl z příkazového řádku, měli byste získat Erlang Shell, jak je znázorněno níže. To znamená, že jste Erlang úspěšně nainstalovali.
# 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
Stáhněte si RabbitMQ
Aktuální stabilní verze serveru RabbitMQ je 3.0.4. Když přejdete na web RabbitMQ, uvidíte následující verze, které jsou k dispozici ke stažení pro platformu Linux:1) Debian / Ubuntu 2) Fedora / RHEL 3) Generic Unix 4) Solaris
V tomto příkladu jsem pro Generic Unix zvolil RabbitMQ.
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
Spusťte RabbitMQ Server
Spusťte server RabbitMQ předáním volby -detached, jak je uvedeno níže.
# cd /usr/save/rabbitmq_server-3.0.4 # sbin/rabbitmq-server -detached Warning: PID file not written; -detached was passed.
Pokud se vám při spouštění serveru RabbitMQ zobrazuje chybová zpráva could_not_start_tcp_listener, přečtěte si níže uvedenou část pro řešení problémů, kde naleznete řešení, jak tento problém vyřešit.
Ověřte stav RabbitMQ
Pomocí příkazu rabbitmqctl ověřte stav serveru RabbitMQ a v případě potřeby jej zastavte.
# 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.
Chcete-li zastavit RabbitMQ Server, použijte příkaz rabbitmqctl, jak je znázorněno níže.
# sbin/rabbitmqctl stop
Odstraňování problémů
Problém: Na CentOS 6, pokud jste použili yum k instalaci rabbitmq nebo ze zdroje, jak je vysvětleno výše, a pokud se vám zobrazuje „BOOT FAILED {could_not_start_tcp_listener ,{“::”,5672}}”, můžete mít problém s konfliktem portů.
Řešení: Balíček Matahari, který je standardně nainstalován na CentOS 6, také běží na portu 5672. Tento proces je standardně spuštěn. Zkuste zastavit qpidd (démon Qpid AMQP) a zjistěte, zda to problém vyřeší. Pokud nepotřebujete Matahari, můžete také odinstalovat balíčky matahari, matahari-broker, qpid-cpp-server-ssl a qpid-cpp-server.
Zastavte démona qpidd a zakažte mu spouštění systému pomocí příkazu 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
Nyní, když spustíte RabbitMQ server, měl by fungovat.