安装rabbitmq
高可用集群
1:http://88250.b3log.org/rabbitmq-clustering-ha 创建集群
2:http://www.bbtang.info/linux/fuwu/610.html 创建策略
1:下载源码
https://www.rabbitmq.com/download.html
2:依赖库
yum -y install libX* java* tk unixODBC unixODBC-devel
yum -y install ncurses-devel
yum -y install libffi-devel
yum -y install glib*
yum -y install wxGTK
yum -y install xmlto
下载glib-2.30.0安装
./configure --prefix=/usr
make make install
===========================
wxWidgets
==========================
yum -y install gtk2-devel
yum -y install gtk2-engines-devel
yum -y install gtk+extra-devel
yum install *gtk*
./configure
make && make install
#install pango
==========================================
erlang
==========================================
wget http://www.erlang.org/download/otp_src_R15B01.tar.gz
./configure
make && make install
由于最终部署的生产环境是Centos,所以我需要在Centos中安装Erlang B13R04 ,第一次做这件事情破费周折,主要是对Erlang依赖的库不熟悉,总是编译不过;这里梳理一下安装过程中的细节:
Erlang依赖哪些库?
- A fully working GCC compiler environment
- Ncurses development libraries
- OpenSSL development libraries (如果使用mysql必须安装)
安装了这些库之后,必须要重新执行configure命令,configure之后会有提示哪些依赖的库没有安装,可以根据你的需要放弃安装一些库;上面的操作可以使用下面的命令实现:
> wget http://www.erlang.org/download/otp_src_R13B04.tar.gz
> tar xfvz otp_src_R13B04.tar.gz
> cd otp_src_R13B04/
> ./configure --with-ssl
> sudo make install
注意,如果你遇到下面的错误:
{load_failed,
"Failed to load NIF library: '/usr/local/lib/erlang/lib/crypto-2.0/priv/lib/crypto.so: undefined symbol: enif_make_new_binary'"}}
那么极有可能是两个原因:
- 没有安装OpenSSL
- 你安装了多版本的Erlang,R14A和R13B04冲突造成的,删除erlang相关的文件夹,重新安装即可
Crypto的类库可能多次折磨到你,如果在windows环境中遇到下面的错误:
exited: {shutdown,{crypto_app,start,[normal,[]]}}
那基本上就是因为没有安装OpenSSL的原因,去下载一个Win32OpenSSL安装一下就可以解决,安装过程中按照默认一路next即可。
还需要提醒的是:在centos环境中,建议规划好服务器不要在root目录安装,否则你在make的时候就会遇到错误。
最新版本的是:
udo yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
wget http://www.erlang.org/download/otp_src_R14B03.tar.gz
tar xfvz otp_src_R14B03.tar.gz
cd otp_src_R14B03/
./configure --with-ssl
sudo make install
3:安装
make
make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install
【需要修改MakeFile文件增加TARGET_DIR SBIN_DIR MAN_DIR】
开启监控
rabbitmq-plugins enable rabbitmq_management
运行
找到sbin/目录,运行程序:
/usr/local/sbin/rabbitmq-server –detached
停止程序:
/usr/local/sbin/rabbitmqctl stop
配置
主要参考官方文档:http://www.rabbitmq.com/configure.html
一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,有两个途径:
一个是环境变量的配置文件 rabbitmq-env.conf ;
一个是配置信息的配置文件 rabbitmq.config;
注意,这两个文件默认是没有的,如果需要必须自己创建。
rabbitmq-env.conf
这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
文件的内容包括了RabbitMQ的一些环境变量,常用的有:
#RABBITMQ_NODE_PORT= //端口号
#HOSTNAME=
RABBITMQ_NODENAME=mq
RABBITMQ_CONFIG_FILE= //配置文件的路径
RABBITMQ_MNESIA_BASE=/rabbitmq/data //需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/rabbitmq/log //log的路径
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins //插件的路径
具体的列表见:http://www.rabbitmq.com/configure.html#define-environment-variables
rabbitmq.config
这是一个标准的erlang配置文件。它必须符合erlang配置文件的标准。
它既有默认的目录,也可以在rabbitmq-env.conf文件中配置。
文件的内容详见:http://www.rabbitmq.com/configure.html#config-items
监控
主要参考官方文档:http://www.rabbitmq.com/management.html
RabbitMQ提供了一个web的监控页面系统,这个系统是以Plugin的方式进行调用的。
首先,在rabbitmq-env.conf中配置好plugins目录的位置:RABBITMQ_CONFIG_FILE
将监控页面所需要的plugin下载到plugins目录下,这些plugin包括:
mochiweb
webmachine
rabbitmq_mochiweb
amqp_client
rabbitmq_management_agent
rabbitmq_management
下载路径位于:http://www.rabbitmq.com/plugins.html#rabbitmq_management
重新启动RabbitMQ,输入http://server-name:55672/mgmt/ 就能够进入到监控页面。默认的用户名和密码是: guest 和 guest。
出于安全考虑,3.0以上guest账户已经不能登录了。具体参见http://www.cnblogs.com/mingaixin/p/4134920.html