安装RabbitMQ

本文详细介绍了RabbitMQ的安装过程,包括安装Erlang、RabbitMQ的依赖及RabbitMQ本身。在安装过程中遇到的如找不到erlang命令、无法远程连接等问题,也给出了相应的解决方案。最后,文章还提到了测试RabbitMQ连接的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装erlang

  1. 安装依赖: yum install ncurses-devl
  2. 下载安装包:http://www.erlang.org/downloads/
  3. 进入解压后的安装包,执行./configure --prefix=/usr/local/erlang/ --without-javac
  4. 编译安装:make && make install

安装 RabbitMQ

  1. 安装Python: yum install python -y
  2. 安装依赖xmlto : yum install xmlto
  3. 安装依赖simplejson:yum install simplejson
  4. 下载安装包:https://www.rabbitmq.com/install-generic-unix.html
  5. 解压RabbitMQ压缩包:使用xz -d 和 tar zxvf命令先后解压
  6. 将解压后文件move到/usr/local目录下,因为我默认安装的软件都在这个目录下:mv 解压后的文件名 /usr/local/rabbitmq
  7. 开启rabbitMQ:进入到/usr/local/rabbitmq/sbin目录中,执行./rabbitmq-server &
  8. 关闭rabbitMQ:进入到/usr/local/rabbitmq/sbin目录中,执行./rabbitmqctl stop
  9. 查看端口状态:netstat -anp | grep 5672
  10. Mac OS 下使用sudo lsof -nP -iTCP:端口号 -sTCP:LISTEN查看端口状态
    -n 表示不显示主机名,-P 表示不显示端口俗称,不加 sudo 只能查看以当前用户运行的程序,可以后接管道符 sudo lsof -nP -iTCP grep ‘8080’
  11. 查看进程信息:ps -ef | grep rabbit

安装出现的问题

  1. 无法找到erlang时出现的错误:./rabbitmq-server: line 187: erl: command not found ,解决方法:在rabbitmq-server文件中的187行处添加
ERLANG_HOME=/usr/local/erlang21
export PATH=$PATH:$ERLANG_HOME/bin
  1. 无法找到erlang时出现的错误:./rabbitmq-env: line 415: exec: erl: not found,解决方法与1相同,在rabbitmq-env文件的415行处添加erlang配置目录
  2. 无法成功连接的错误:org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused (Connection refused),在整合SpringBoot与RabbitMQ时,由于配置文件如下所示设置的连接用户为guest,而guest是不能远程连接的,因此要添加一个配置文件。
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

/usr/local/rabbitmq/etc/rabbitmq目录下新建一个名为且必须为rabbitmq.config的配置文件,里面填上

[{rabbit, [{loopback_users, []}]}].

  1. 若是还是无法连接成功,查看防火墙是否打开了5672端口,若是未打开,执行以下操作:
sudo vim /etc/sysconfig/iptables
## rabbitMQ 在防火墙文件中打开5672端口
-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
#重启防火墙
sudo service iptables restart

测试RabbitMQ

// 队列配置文件
@Configuration
public class MQConfig {
	public static final String QUEUE = "queue";
	@Bean
    public Queue queue() {
        return new Queue(QUEUE, true);
    }
}
// 发送者
@Service
public class MQSender {
    @Autowired
    AmqpTemplate amqpTemplate;
    
    public void send(Object message) {
        String msg = RedisService.beanToString(message);
        log.info("send message:" + msg);
        amqpTemplate.convertAndSend(MQConfig.QUEUE, msg);
    }
}
// 接受者
@Service
public class MQReceiver {

    @RabbitListener(queues = MQConfig.QUEUE)
    public void receive(String message) {
        log.info("receive message:" + message);
    }
}
// 测试接口
	@RequestMapping("/rabbitmq")
    @ResponseBody
    public void rabbitmq() {
        mqSender.send("hello,dazou");
    }
结果
2019-04-14 16:51:51.545  INFO 13609 --- [nio-8080-exec-1] com.dazou.miaosha.rabbitmq.MQSender      : send message:hello,dazou
2019-04-14 16:51:51.593  INFO 13609 --- [cTaskExecutor-4] com.dazou.miaosha.rabbitmq.MQReceiver    : receive message:hello,dazou
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值