安裝RabbitMQ(一)

RabbitMQ簡介

RabbitMQ 是由 LShift 提供的一個 Advanced Message Queuing Protocol (AMQP) 的開源實現,由以高性能、健壯以及可伸縮性出名的 Erlang 寫成,所以也是繼承了這些優勢。消息中間件主要用於組件之間的解耦,消息的發送者無需知道消息使用者的存在,反之亦然。AMQP的主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。RabbitMQ支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。RabbitMQ解決了應用程序之間的互聯(connect)和規模(scale)的問題,消息發送和接收是隔離,發送方不知道消息最終由誰接收,接收方也沒必要關心消息是誰步發出的;發送和接收是隔離的,消息本質上就是異步的.這種隔離也就解耦了應用程序之間的依賴。RabbitMQ的角色就是應用程序中間的路由器。html

規模(scale),應用程序解除了相互依賴以後從業務層面更容易作擴展,而Erlang的先天優點讓代碼層面的開發也更容易node

安裝erlang,執行命令`yum install -y erlang

出現下面圖片則erlang安裝成功。
linux

下載RabbitMQ 執行命令wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.2/rabbitmq-server-3.4.2-1.noarch.rpm

安裝RabbitMQ

執行rpm -ivh rabbitmq-server-3.4.2-1.noarch.rpm命令git

第一次安裝的時候出現了錯誤 ,##error: unpacking of archive failed on file /usr/lib/rabbitmq/lib/rabbitmq_server-3.4.2/ebin/dtree.beam;564c8512: cpio: read failed - Bad file descriptor##,截圖以下
github

看到網上說重試幾回能夠,我將原來的rpm文件刪除掉,從新下載安裝成功。瀏覽器

執行rabbitmqctl status命令,獲得以下的信息安全

Status of node rabbit@localhost ...
Error: unable to connect to node rabbit@localhost: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@localhost]

rabbit@localhost:
  * connected to epmd (port 4369) on localhost
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on localhost
  * suggestion: start the node

current node details:
- node name: 'rabbitmqctl-6310@localhost'
- home dir: /var/lib/rabbitmq
- cookie hash: ybKnLWdtnBMcXHwE5BIbig==

執行/etc/init.d/rabbitmq-server restart命令,rabbitmq-server啓動。cookie

再次執行 rabbitmqctl status命令app

Status of node rabbit@localhost ...
[{pid,6475},
 {running_applications,[{rabbit,"RabbitMQ","3.4.2"},
                        {mnesia,"MNESIA  CXC 138 12","4.5"},
                        {os_mon,"CPO  CXC 138 46","2.2.7"},
                        {xmerl,"XML parser","1.2.10"},
                        {sasl,"SASL  CXC 138 11","2.1.10"},
                        {stdlib,"ERTS  CXC 138 10","1.17.5"},
                        {kernel,"ERTS  CXC 138 10","2.14.5"}]},
 {os,{unix,linux}},
 {erlang_version,"Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:30] [kernel-poll:true]\n"},
 {memory,[{total,27093832},
          {connection_readers,0},
          {connection_writers,0},
          {connection_channels,0},
          {connection_other,2648},
          {queue_procs,2648},
          {queue_slave_procs,0},
          {plugins,0},
          {other_proc,9081872},
          {mnesia,57424},
          {mgmt_db,0},
          {msg_index,35520},
          {other_ets,758616},
          {binary,8144},
          {code,14503690},
          {atom,1352841},
          {other_system,1290429}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,411407155},
 {disk_free_limit,50000000},
 {disk_free,12885368832},
 {file_descriptors,[{total_limit,924},
                    {total_used,3},
                    {sockets_limit,829},
                    {sockets_used,1}]},
 {processes,[{limit,1048576},{used,121}]},
 {run_queue,0},
 {uptime,104}]

接下來安裝mercurial git,執行yum install -y mercurial git命令異步

繼續安裝 rabbitmq-public-umbrella

cd /var/lib/rabbitmq && hg clone http://hg.rabbitmq.com/rabbitmq-public-umbrella
cd /var/lib/rabbitmq/rabbitmq-public-umbrella && make co

繼續安裝

cd /var/lib/rabbitmq/rabbitmq-public-umbrella/rabbitmq-management && make
cd /var/lib/rabbitmq/rabbitmq-public-umbrella/ && git clone
https://github.com/rabbitmq/rabbitmq-priority-queue
cd /var/lib/rabbitmq/rabbitmq-public-umbrella/rabbitmq-priority-queue && make
cp /var/lib/rabbitmq/rabbitmq-public-umbrella/rabbitmq-priority-queue/dist/rabbitmq_priority_queue-0.0.0.ez
 /usr/lib/rabbitmq/lib/rabbitmq_server-3.4.2/plugins/
rabbitmq-plugins enable --offline rabbitmq_priority_queue
rabbitmq-plugins enable --offline rabbitmq_management
/etc/init.d/rabbitmq-server restart
rabbitmqctl status

瀏覽器 http://rabbitmq-server:15672

rabbitmq
rabbitmq-server

相關文章
相關標籤/搜索