一、rabbitmq安装报错
在安装rabbitmq时,有时会遇到各种错误提示,比如:无法连接或找不到服务器,安装失败等问题。
遇到这种情况时,我们需要先查看错误信息,对症下药。常见的错误及其解决方法如下:
1、Erlang安装不成功:
$ sudo apt-get update
$ sudo apt-get install erlang-nox
2、Erlang版本低于R16B03或R15B03-1:
$ sudo apt-get install build-essential
$ wget http://www.erlang.org/download/otp_src_R16B03.tar.gz
$ tar -xzvf otp_src_R16B03.tar.gz
$ cd otp_src_R16B03
$ ./configure && make && sudo make install
3、RabbitMQ组件缺失:
$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
$ sudo dpkg -i erlang-solutions_1.0_all.deb
$ sudo apt-get update
$ sudo apt-get install elixir rabbitmq-server
二、rabbitmq安装配置
安装完成后,我们需要对RabbitMQ进行一些基本的配置工作,以确保其正常运行。主要包括以下方面:
1、启用RabbitMQ服务器:
$ sudo systemctl enable rabbitmq-server
$ sudo systemctl start rabbitmq-server
2、设置管理员用户:
$ sudo rabbitmqctl add_user admin admin_password
$ sudo rabbitmqctl set_user_tags admin administrator
$ sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
3、开放防火墙端口:
$ sudo ufw allow 5672/tcp
$ sudo ufw reload
三、rabbitmq安装
安装过程中,我们需要下载对应版本的RabbitMQ安装包,安装命令如下:
$ sudo apt-get update
$ sudo apt-get install curl gnupg2
$ curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -
$ echo "deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang-23.x" >> /etc/apt/sources.list.d/bintray.erlang.list
$ echo "deb https://dl.bintray.com/rabbitmq/debian bionic main" >> /etc/apt/sources.list.d/bintray.rabbitmq.list
$ sudo apt-get update
$ sudo apt-get install rabbitmq-server
四、rabbitMq协议
RabbitMQ是一个开源的AMQP协议消息代理软件。AMQP协议是一个提供了完整消息队列服务的协议,比如:消息的传输、路由、接收和分配等,因此具有以下特点:
1、可扩展性:RabbitMQ的AMQP协议具有可扩展性,可以实现具有高伸缩性的系统。
2、可靠性:RabbitMQ的AMQP协议可以实现消息的持久化,确保消息的不丢失。
3、可重现性:RabbitMQ的AMQP协议可以对消息进行重播和重发布等操作,以确保消息的完整性。
五、为什么要用rabbitMq
RabbitMQ是一种高性能的、可扩展的、可靠的、灵活的消息中间件,被广泛应用于互联网架构、分布式系统等领域,主要原因如下:
1、异步通信:RabbitMQ支持异步通信,通过消息队列尽量避免了系统各个组件之间的耦合。
2、扩展性:RabbitMQ支持分布式架构,可以实现动态扩展节点和消息队列。
3、高可用性:RabbitMQ可以在多个节点之间实现消息的复制和备份,确保消息服务的高可用性。
4、API支持:RabbitMQ提供了多种语言的API支持,可以方便地在不同语言的系统中进行集成。
5、安全性:RabbitMQ提供了多种安全机制,如TLS/SSL加密和身份验证等,确保消息的安全传输。