RabbitMQ
RabbitMQ是一套软体。
需求
在AWS上用t3a.nano
安装(512 MB的记忆体),会在开机后就马上吃到Swap空间(机器上设定512 MB的Swap),这边建议建议开发环境至少用t3a.micro
,正式环境的记忆体可以再往上开大。
要注意RabbitMQ预设要求要有40%的记忆体是空闲的,不然会开始罢工...
安装
RabbitMQ的安装会跨越好几个APT Repository:
sudo sudo apt-key adv --keyserver hkps://keys.openpgp.org --recv-keys 0x0A9AF2115F4687BD29803A206B73A36E6026DFCA; sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F77F1EDA57EBB1CC; curl -1sLf 'https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey' | sudo apt-key add -; sudo apt update; sudo apt install -y rabbitmq-server
基本设定
通常我们会先打开Web管理界面:
sudo rabbitmq-plugins enable rabbitmq_management
登入的界面是http://x.x.x.x:15672/
,预设的帐号是guest
,密码也是guest
,虽然叫做guest,但是这组帐号是管理员。
另外要注意的是,预设的guest
帐号只能从本机localhost
连线登入,如果要开放远端可以连的话,可以透过/etc/rabbitmq/rabbitmq.conf
设定修改(这个档案有可能不存在,需要自己建立):
loopback_users = none
登入后建议先建立admin
帐号,并且移除guest
帐号(这个名称太雷)。
Cluster设定
建议至少三台机器,建议会是奇数(考虑到quorum)。
DNS
每一台机器的/etc/hosts
内要把其他机器的位置都设定进去,这边有这三台机器:
- rabbitmq-1-dev
- rabbitmq-2-dev
- rabbitmq-3-dev
修改Cluster名称
在rabbitmq-1-dev上把Cluster改名成rabbitmq-dev,预设的名称会是主机的名称(在这边的例子就是rabbitmq-1-dev
):
sudo rabbitmqctl set_cluster_name rabbitmq-dev
join_cluster
在rabbitmq-2-dev与rabbitmq-3-dev上加入:
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster rabbit@rabbitmq-1-dev
sudo rabbitmqctl start_app
外部连结
- 官方网站 (英文)