如何离线安装RabbitMQ?

如题
已邀请:

1、安装系统依赖




yum install epel-release unixODBC unixODBC-devel libtiff* ncurses-devel gtk3 gtk2


2、下载安装运行环境erlang及依赖的rpm




mkdir –p /home/software/erlang/
cd /home/software/erlang/
#erlang
wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_22.2.1-1~centos~7_amd64.rpm
#依赖
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/w/wxBase-2.8.12-20.el7.x86_64.rpm
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/w/wxGTK-gl-2.8.12-20.el7.x86_64.rpm
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/w/wxGTK-2.8.12-20.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/mesa-libGLU-9.0.0-4.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/SDL-1.2.15-14.el7.x86_64.rpm


3、安装erlang




cd /home/software/erlang/
rpm –ivh *.rpm


4、验证安装输入命令erl,显示版本并进入程序命令行即可




erl


5、下载安装rabbitmq




mkdir –p /home/software/rabbitmq/
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.2/rabbitmq-server-generic-unix-3.8.2.tar.xz
tar –xvf rabbitmq-server-generic-unix-3.8.2.tar.xz
chmod -R 755 rabbitmq_server-3.8.2


6、将rabbitmq执行程序,添加到环境变量




vi ~/.bash_profile
#修改添加PATH变量/home/software/erlang_and_rabbitMQ/rabbitmq/rabbitmq_server-3.8.2/sbin
#大概效果PATH=$OPENSSL:$PATH:$HOME/bin:/home/software/erlang_and_rabbitMQ/rabbitmq/rabbitmq_server-3.8.2/sbin


7、启动rabbitmq和管理界面




rabbitmq-server start
rabbitmq-plugins enable rabbitmq_management


8、访问前台管理界面 (默认密码admin/admin)




http://10.10.18.160:15672/#/


 



 



 

附RabbitMQ常用的命令:




#开启RabbitMQ服务:.
$ ./rabbitmq-server -detached (-detached为可选参数,表示后台开启)

#开启RabbitMQ管理工具,通过浏览器访问http://ip:15672使用
$ ./rabbitmq-plugins enable rabbitmq_management (3.3.1版本以后默认不允许用guest远程管理。可以手动创建管理员帐号来远程管理,具体参见4.4)

#关闭RabbitMQ服务:
$ ./rabbitmqctl stop

$ chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务
$ rabbitmq-server start # 启动服务
$ rabbitmq-server status # 查看服务状态
$ rabbitmq-server stop # 停止服务 # 查看当前所有用户
$ rabbitmqctl list_users # 查看默认guest用户的权限
$ rabbitmqctl list_user_permissions guest # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户
$ rabbitmqctl delete_user guest # 添加新用户
$ rabbitmqctl add_user username password # 设置用户tag
$ rabbitmqctl set_user_tags username administrator # 赋予用户默认vhost的全部操作权限
$ rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 查看用户的权限
$ rabbitmqctl list_user_permissions username


 

配置说明

Key

Documentation

tcp_listeners

用于监听 AMQP连接的端口列表(无SSL). 可以包含整数 (即"监听所有接口")或者元组如 {"127.0.0.1", 5672} 用于监听一个或多个接口.

Default: [5672]

num_tcp_acceptors

接受TCP侦听器连接的Erlang进程数。

Default: 10

handshake_timeout

AMQP 0-8/0-9/0-9-1 handshake (在 socket连接和SSL 握手之后)的最大时间, 毫秒为单位.

Default: 10000

ssl_listeners

如上所述,用于SSL连接。

Default: []

num_ssl_acceptors

接受SSL侦听器连接的Erlang进程数。

Default: 1

ssl_options

SSL配置.参考SSL documentation.

Default: []

ssl_handshake_timeout

SSL handshake超时时间,毫秒为单位.

Default: 5000

vm_memory_high_watermark

流程控制触发的内存阀值.相看memory-based flow control 文档.

Default: 0.4

vm_memory_high_watermark_paging_ratio

高水位限制的分数,当达到阀值时,队列中消息消息会转移到磁盘上以释放内存. 参考memory-based flow control 文档.

Default: 0.5

disk_free_limit

RabbitMQ存储数据分区的可用磁盘空间限制.当可用空间值低于阀值时,流程控制将被触发.此值可根据RAM的总大小来相对设置 (如.{mem_relative, 1.0}).此值也可以设为整数(单位为bytes)或者使用数字单位(如."50MB").默认情况下,可用磁盘空间必须超过50MB.参考 Disk Alarms 文档.

Default: 50000000

log_levels

控制日志的粒度.其值是日志事件类别(category)和日志级别(level)成对的列表.

level 可以是 'none' (不记录日志事件), 'error' (只记录错误), 'warning' (只记录错误和警告), 'info' (记录错误,警告和信息), or 'debug' (记录错误,警告,信息以及调试信息).

目前定义了4种日志类别. 它们是:

  • channel -针对所有与AMQP channels相关的事件

  • connection - 针对所有与网络连接相关的事件

  • federation - 针对所有与federation相关的事件

  • mirroring -针对所有与 mirrored queues相关的事件

Default: [{connection, info}]

frame_max

与客户端协商的允许最大frame大小. 设置为0表示无限制,但在某些QPid客户端会引发bug. 设置较大的值可以提高吞吐量;设置一个较小的值可能会提高延迟.

 

Default: 131072

channel_max

与客户端协商的允许最大chanel大小. 设置为0表示无限制.该数值越大,则broker使用的内存就越高.

Default: 0

channel_operation_timeout

Channel 操作超时时间(毫秒为单位) (内部使用,因为消息协议的区别和限制,不暴露给客户端).

Default: 5000

heartbeat

表示心跳延迟(单位为秒) ,服务器将在connection.tune frame中发送.如果设置为 0, 心跳将被禁用. 客户端可以不用遵循服务器的建议, 查看 AMQP reference 来了解详情. 禁用心跳可以在有大量连接的场景中提高性能,但可能会造成关闭了非活动连接的网络设备上的连接落下.

Default: 60 (3.5.5之前的版本是580)

default_vhost

当RabbitMQ从头开始创建数据库时创建的虚拟主机. amq.rabbitmq.log交换器会存在于这个虚拟主机中.

Default: <<"/">>

default_user

RabbitMQ从头开始创建数据库时,创建的用户名.

Default: <<"guest">>

default_pass

默认用户的密码.

Default: <<"guest">>

default_user_tags

默认用户的Tags.

Default: [administrator]

default_permissions

创建用户时分配给它的默认Permissions .

Default: [<<".*">>, <<".*">>, <<".*">>]

loopback_users

只能通过环回接口(即localhost)连接broker的用户列表

如果你希望默认的guest用户能远程连接,你必须将其修改为[].

Default: [<<"guest">>]

cluster_nodes

当节点第一次启动的时候,设置此选项会导致集群动作自动发生. 元组的第一个元素是其它节点想与其建立集群的节点. 第二个元素是节点的类型,要么是disc,要么是ram

Default: {[], disc}

server_properties

连接时向客户端声明的键值对列表

Default: []

collect_statistics

统计收集模式。主要与管理插件相关。选项:

  • none (不发出统计事件)

  • coarse (发出每个队列 /每个通道 /每个连接的统计事件)

  • fine (也发出每个消息统计事件)

你自已可不用修改此选项.

Default: none

collect_statistics_interval

统计收集时间间隔(毫秒为单位). 主要针对于 management plugin.

Default: 5000

auth_mechanisms

提供给客户端的SASL authentication mechanisms.

Default: ['PLAIN', 'AMQPLAIN']

auth_backends

用于 authentication / authorisation backends 的列表. 此列表可包含模块的名称(在模块相同的情况下,将同时用于认证来授权)或像{ModN, ModZ}这样的元组,在这里ModN将用于认证,ModZ将用于授权.

在2元组的情况中, ModZ可由列表代替,列表中的所有元素必须通过每个授权的确认,如{ModN, [ModZ1, ModZ2]}.这就允许授权插件进行组合提供额外的安全约束.

rabbit_auth_backend_internal外,其它数据库可以通常 plugins来使用.

Default: [rabbit_auth_backend_internal]

reverse_dns_lookups

设置为true,可让客户端在连接时让RabbitMQ 执行一个反向DNS查找, 然后通过 rabbitmqctl 和 管理插件来展现信息.

 

Default: false

delegate_count

内部集群通信中,委派进程的数目. 在一个有非常多核的机器(集群的一部分)上,你可以增加此值.

Default: 16

trace_vhosts

 tracer内部使用.你不应该修改.

Default: []

tcp_listen_options

默认socket选项. 你可能不想修改这个选项.

Default:

[{backlog,       128},          {nodelay,       true},          {exit_on_close, false}]

hipe_compile

将此选项设置为true,将会使用HiPE预编译部分RabbitMQ,Erlang的即时编译器.

这可以增加服务器吞吐量,但会增加服务器的启动时间.

你可以看到花费几分钟延迟启动的成本,就可以带来20-50% 更好性能.这些数字与高度依赖于工作负载和硬件.

HiPE 支持可能没有编译进你的Erlang安装中.如果没有的话,启用这个选项,并启动RabbitMQ时,会看到警告消息. 例如, Debian / Ubuntu 用户需要安装erlang-base-hipe 包.

HiPE并非在所有平台上都可用,尤其是Windows.

在 Erlang/OTP 17.5版本之前,HiPE有明显的问题 . 对于HiPE,使用最新的OTP版本是高度推荐的.

Default: false

cluster_partition_handling

如何处理网络分区.可用模式有:

  • ignore

  • pause_minority

  • {pause_if_all_down, [nodes], ignore | autoheal}where [nodes] is a list of node names

    (ex: ['rabbit@node1', 'rabbit@node2'])

  • autoheal

参考documentation on partitions 来了解更多信息

Default: ignore

cluster_keepalive_interval

节点向其它节点发送存活消息和频率(毫秒). 注意,这与 net_ticktime是不同的;丢失存活消息不会引起节点掉线

Default: 10000

queue_index_embed_msgs_below

消息大小在此之下的会直接内嵌在队列索引中. 在修改此值时,建议你先阅读  persister tuning 文档.

Default: 4096

msg_store_index_module

队列索引的实现模块. 在修改此值时,建议你先阅读  persister tuning 文档.

Default: rabbit_msg_store_ets_index

backing_queue_module

队列内容的实现模块. 你可能不想修改此值.

Default: rabbit_variable_queue

msg_store_file_size_limit

Tunable value for the persister. 你几乎肯定不应该改变此值。

Default: 16777216

mnesia_table_loading_timeout

在集群中等待使用Mnesia表可用的超时时间。

Default: 30000

queue_index_max_ journal_entries

Tunable value for the persister. 你几乎肯定不应该改变此值。

Default: 65536

queue_master_locator

Queue master 位置策略.可用策略有:

  • <<"min-masters">>

  • <<"client-local">>

  • <<"random">>

查看documentation on queue master location 来了解更多信息.

Default: <<"client-local">>

要回复问题请先登录注册