RabbitMQ 集群环境安装
2012-09-26 11:38
411 查看
突然发现自己的英语能力很差,文档看的云里雾里,在安装RabbitMQ集群的时候遇到了很大的麻烦。
安装RabbitMQ的集群环境,首先得来讲如何安装非集群环境
Step1:安装Erlang
啥是Erlang?Look–>http://en.wikipedia.org/wiki/Erlang_%28programming_language%29
下载Erlang的SRC-otp_src_R13B04.tar.gz
./configure--prefix=/usr/local/erlang
make
makeinstall
Step2:安装Python2.6以上版本(大部分Linux版本都自带了Python2.6以上版本)
Step3:如果没有simplejson-2.1.1这个Python的lib,需要从此处下载
Step4:下载RabbitMQServerPackagerabbitmq-server-generic-unix-1.7.2.tar.gz
Step5:解压后,进入/home/rabbitmq_server-1.7.2/sbin目录,运行./rabbitmq-server
如果出现:
则代表启动成功。
接下来,就来阐述一下我安装RabbitMQ的方法
首先:我非常欣赏官方文档的详细和无厘头。
官方文档非常详细的介绍了手动配置和自动配置两种手段,手动配置是利用了sbin目录里提供的rabbitmqctl脚本,非常强大而YD,具体就不阐述了,里面有非常靠谱的介绍。但是,不靠谱的是,文档忘记说明三个问题,虽然可能在RabbitMQErlang开发人员的眼里,简直是小儿科。
RabbitMQ完全依赖Erlang的Cluster,所以,要构建起RabbitMQ的集群环境,还是需要了解一点Erlang,不然就是盲人摸象,摸到哪算哪。
这里首先非常感谢Erlang-China上的文档说明:
http://erlang-china.org/study/erlang-distribute-security.html,让我明白了几个问题:
a.为什么我的.erlang.cookie不在RabbitMQ文档里说的
既然你完全依赖Erlang的集群环境,你就没必要特别指出你是在/var/lib/rabbitmq里了,何苦呢,如果说你要设置$HOME,那也得问问我这个使用者感受,是不。
b.节点间的通信,首要条件是互相可见,Erlang的安全级别只有两种(AllorNo),要么啥权限都有,要么啥都没有。我非常欣赏这种设计,比起所谓的ACL,在强大的网络和通信能力的光环之下,以及内部网络的基础上,简直是可有可无。
c.如何保证节点(server)间互相能通信,Erlang采用了Cookie匹配的做法:如果在命令行里面带上-setcookie,则在当前节点使用这个cookie值,否则会使用$HOME/.erlang.cookie。清晰啊···
d.我非常喜欢-setcookie的做法,直接··
具体的设置方法,该文章讲的非常清楚,我就不赘述了。从中我学到了3样事情:
f.如何检查节点间是否可以通讯:net_adm:ping(‘foo@192.168.0.2‘).
g.如何得知当前的Erlang集群中有哪些server:node().
h.特别注意foo@192.168.0.2,这表明当前的用户,foo1@192.168.0.2和foo2@192.168.0.2是代表两个不一样的Erlang节点。
Note:由于我好暂时不需要Security相关的东西,所以也没花功夫去看。
2.建立在1的基础上,我们已经知道如何配置Erlang的集群了,接下来就是RabbitMQ
a.删除/var/lib/rabbitmq/mnesia
似乎Erlang或者是MQ做了一些让人摸不着头脑的事情,一旦启动过了MQ(单机版)就会随机产生一个Cookie,并且,这个cookie是会保存在Mnesia的Schema中的。所以如果你在安装好MQ之后,异常兴奋,如我这般启动过了MQ,那就会掉入文档的一个陷阱中。
b.修改rabbit-server脚本
经管有文档中已经有非常傻瓜的配置方法了,并且也提到了:
但是因为信任度的关系,我还是相信了Erlang-China。修改的rabbit-server日下:
其中,要注意的地方是:
i.rabbit@replica2,replica2是指的当前server的hostName(etc/hosts)。
ii.设置的cookie是叫rabbit,也就是说这个名字可以随便定,无所谓。
iii.同样,我试过不用Host而用IP,结果似乎不能运行(但是在Erlang的集群配置中,IP还是HostName并不是一个bigissue。
3.启动rabbit-server,直接点,别rabbitmq-server–detach了。
4.另起一个console,运行
转载自:http://hammer-nail.iteye.com/blog/640537
安装RabbitMQ的集群环境,首先得来讲如何安装非集群环境
Step1:安装Erlang
啥是Erlang?Look–>
下载Erlang的SRC-
./configure--prefix=/usr/local/erlang
make
makeinstall
Step2:安装Python2.6以上版本(大部分Linux版本都自带了Python2.6以上版本)
Step3:如果没有simplejson-2.1.1这个Python的lib,需要从
Step4:下载RabbitMQServerPackage
Step5:解压后,进入/home/rabbitmq_server-1.7.2/sbin目录,运行./rabbitmq-server
如果出现:
+---++---+ |||| |||| |||| |+---++-------+ || |RabbitMQ+---+| |||| |v1.7.2+---+| || +-------------------+ AMQP8-0 Copyright(C)2007-2010LShiftLtd.,CohesiveFinancialTechnologiesLLC.,andRabbitTechnologiesLtd. LicensedundertheMPL.See node:rabbit@replica1 appdescriptor:/home/rabbitmq_server-1.7.2/sbin/../ebin/rabbit.app homedir:/root cookiehash:pR5H9kY3Wra/XdLELT5hgQ== log:/var/log/rabbitmq/rabbit.log sasllog:/var/log/rabbitmq/rabbit-sasl.log databasedir:/var/lib/rabbitmq/mnesia/rabbit startinginternaleventnotificationsystem...done startingloggingserver...done startingdatabase...done --kernelready startingalarmhandler...done startingqueuesupervisor...done startingnodemonitor...done startingclusterrouter...done --coreinitialized startingemptyDBcheck...done startingcodeccorrectnesscheck...done startingexchangerecovery...done startingqueuerecovery...done startingpersister...done startingguidgenerator...done --messagedeliverylogicready startingerrorlogrelay...done startingnetworking...done --networklistenersavailable brokerrunning |
接下来,就来阐述一下我安装RabbitMQ的方法
首先:我非常欣赏
官方文档非常详细的介绍了手动配置和自动配置两种手段,手动配置是利用了sbin目录里提供的rabbitmqctl脚本,非常强大而YD,具体就不阐述了,里面有非常靠谱的介绍。但是,不靠谱的是,文档忘记说明三个问题,虽然可能在RabbitMQErlang开发人员的眼里,简直是小儿科。
RabbitMQ完全依赖Erlang的Cluster,所以,要构建起RabbitMQ的集群环境,还是需要了解一点Erlang,不然就是盲人摸象,摸到哪算哪。
这里首先非常感谢Erlang-China上的文档说明:
a.为什么我的.erlang.cookie不在RabbitMQ文档里说的
/var/lib/rabbitmq/.erlang.cookie
因为Erlang产生的
.erlang.cookie是在$HOME/.erlang.cookie
既然你完全依赖Erlang的集群环境,你就没必要特别指出你是在/var/lib/rabbitmq里了,何苦呢,如果说你要设置$HOME,那也得问问我这个使用者感受,是不。
b.节点间的通信,首要条件是互相可见,Erlang的安全级别只有两种(AllorNo),要么啥权限都有,要么啥都没有。我非常欣赏这种设计,比起所谓的ACL,在强大的网络和通信能力的光环之下,以及内部网络的基础上,简直是可有可无。
c.如何保证节点(server)间互相能通信,Erlang采用了Cookie匹配的做法:如果在命令行里面带上-setcookie,则在当前节点使用这个cookie值,否则会使用$HOME/.erlang.cookie。清晰啊···
d.我非常喜欢-setcookie的做法,直接··
具体的设置方法,该文章讲的非常清楚,我就不赘述了。从中我学到了3样事情:
f.如何检查节点间是否可以通讯:net_adm:ping(‘foo@192.168.0.2‘).
g.如何得知当前的Erlang集群中有哪些server:node().
h.特别注意foo@192.168.0.2,这表明当前的用户,
Note:由于我好暂时不需要Security相关的东西,所以也没花功夫去看。
2.建立在1的基础上,我们已经知道如何配置Erlang的集群了,接下来就是RabbitMQ
a.删除/var/lib/rabbitmq/mnesia
似乎Erlang或者是MQ做了一些让人摸不着头脑的事情,一旦启动过了MQ(单机版)就会随机产生一个Cookie,并且,这个cookie是会保存在
b.修改rabbit-server脚本
经管有文档中已经有非常傻瓜的配置方法了,并且也提到了:
Asanalternative,youcaninserttheoption"-setcookiecookie"inthe erlcallinthe rabbitmq-serverand rabbitmqctlscripts. |
${RABBITMQ_EBIN_PATH}\ ${RABBITMQ_START_RABBIT}\ -sname${RABBITMQ_NODENAME}\ -boot${RABBITMQ_BOOT_FILE}\ ${RABBITMQ_CONFIG_ARG}\ +Ww\ ${RABBITMQ_SERVER_ERL_ARGS}\ ${RABBITMQ_LISTEN_ARG}\ -saslerrlog_typeerror\ -kernelerror_logger'{file,"'${RABBITMQ_LOGS}'"}'\ -saslsasl_error_logger'{file,"'${RABBITMQ_SASL_LOGS}'"}'\ -os_monstart_cpu_suptrue\ -os_monstart_disksupfalse\ -os_monstart_memsupfalse\ -mnesiadir"\"${RABBITMQ_MNESIA_DIR}\""\ ${RABBITMQ_CLUSTER_CONFIG_OPTION}\ namerabbit@replica2-setcookierabbit\ ${RABBITMQ_SERVER_START_ARGS}\ "$@" |
i.rabbit@replica2,replica2是指的当前server的hostName(etc/hosts)。
ii.设置的cookie是叫rabbit,也就是说这个名字可以随便定,无所谓。
iii.同样,我试过不用Host而用IP,结果似乎不能运行(但是在Erlang的集群配置中,IP还是HostName并不是一个bigissue。
3.启动rabbit-server,直接点,别rabbitmq-server–detach了。
4.另起一个console,运行
CentOS4.4-64:replica:root>./rabbitmqctlstatus Statusofnoderabbit@replica... [{running_applications,[{rabbit,"RabbitMQ","1.7.2"}, {mnesia,"MNESIACXC13812","4.4.13"}, {os_mon,"CPOCXC13846","2.2.5"}, {sasl,"SASLCXC13811","2.1.9"}, {stdlib,"ERTSCXC13810","1.16.5"}, {kernel,"ERTSCXC13810","2.13.5"}]}, {nodes,[rabbit@replica2,rabbit@replica1,rabbit@replica]}, {running_nodes,[rabbit@replica1,rabbit@replica2,rabbit@replica]}] ...done. |
相关文章推荐
- Rabbitmq的安装及集群环境的搭建 推荐
- redis安装及cluster集群环境搭建
- 详细虚拟机hadoop集群环境安装步骤
- CentOS7环境安装使用专业的消息队列产品RabbitMQ
- LAMP环境安装rabbitmq
- hadoop集群环境搭建之安装配置hadoop集群
- Hadoop集群环境安装
- Ambari系列(一):在离线环境中自动化安装Hadoop集群
- spark基础环境及集群环境安装
- 从VMware虚拟机安装到hadoop集群环境配置详细说明
- 【Nutch2.3基础教程】集成Nutch/Hadoop/Hbase/Solr构建搜索引擎:安装及运行【集群环境】
- ZooKeeper集群环境安装与配置
- 一、Linux下安装搭建Memcached集群环境
- Hadoop 2.7.1 集群模式安装【二】环境配置
- Hadoop化繁为简-从安装Linux到搭建集群环境
- Ubuntu 下 Neo4j单机安装和集群环境安装
- 安装hadoop1.2.1集群环境
- 在hadoop2.4集群环境下安装spark
- rabbitmq 在windows环境下的安装
- openstack controller ha测试环境搭建记录(五)——配置rabbitmq集群