rabbitmq 部署

安装依赖

yum -y install socat gcc gcc-c++ openssl openssl-devel perl ncurses-base ncurses-devel ncurses-bin \
unixODBC.x86_64 unixODBC-devel.x86_64 wxBase wxWidgets-devel

安装 Erlang


# 首先需对erlang对RabbitMQ的版本支持进行对比,因为它是由 erlang 编写的
https://www.rabbitmq.com/which-erlang.html

# -----------------------------------------------------------

# 安装 Erlang: https://www.erlang-solutions.com/resources/download.html
wget http://erlang.org/download/otp_src_23.2.tar.gz
tar -zxf otp_src_23.2.tar.gz -C ~
cd ~/otp_src_23.2
./configure --prefix=/usr/local/software/erlang \
--with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
make -j4
make install

# 环境变量
cat >> ~/.bash_profile <<'EOF'
# set erlang environment
export ERL_HOME=/usr/local/software/erlang
export PATH=$PATH:${ERL_HOME}/bin
EOF
source ~/.bash_profile
# 检查安装: erl -v

安装 RabbitMQ

cd /usr/local/software/
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.1/rabbitmq-server-generic-unix-3.9.1.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.9.1.tar.xz 
ln -sv rabbitmq_server-3.9.1 rabbitmq_server

# 环境变量
cat >> ~/.bash_profile <<'EOF'
# set RabbitMQ environment
export RABBITMQ_HOME=/usr/local/software/rabbitmq_server
export RABBITMQ_CONFIG_FILE=${RABBITMQ_HOME}/etc/rabbitmq/rabbitmq.conf
export RABBITMQ_ADVANCED_CONFIG_FILE=${RABBITMQ_HOME}/etc/rabbitmq/advanced.config
export RABBITMQ_CONF_ENV_FILE=${RABBITMQ_HOME}/etc/rabbitmq/rabbitmq-env.conf
export PATH=$PATH:${RABBITMQ_HOME}/sbin
EOF
source ~/.bash_profile

# 配置文件
# 在 3.7.0 之前 rabbitmq.conf 使用 Erlang 语法格式,新版本使用 sysctl 格式
# https://www.rabbitmq.com/configure.html#config-file
cat > $RABBITMQ_CONFIG_FILE <<'EOF'
listeners.tcp.default = 5672
management.listener.port = 15672
default_vhost = /
heartbeat = 60
log.file.level = info
num_acceptors.tcp = 10
num_acceptors.ssl = 10
ssl_options = none
EOF

# 该文件将与 rabbitmq.conf 合并 ...
# 当某些配置不可用或难以使用 sysctl 格式时可使用 Erlang 格式的配置文件: advanced.config
cat > $RABBITMQ_ADVANCED_CONFIG_FILE <<'EOF'
[
 {rabbitmq_shovel,
  [{shovels,
    [
    ]}
  ]},
  {rabbitmq_auth_backend_ldap, [
  ]}
].
EOF

mkdir -p /var/log/rabbitmq
cat > $RABBITMQ_CONF_ENV_FILE <<'EOF'
#!/bin/bash
RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
RABBITMQ_NODE_PORT=5672
# RABBITMQ_NODENAME=<rabbitmq_nodename>
RABBITMQ_LOG_BASE=/var/log/rabbitmq/
# RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
EOF

# 开启WEB管理插件
rabbitmq-plugins enable rabbitmq_management

# 后台启动,停止服务: rabbitmqctl stop
rabbitmq-server -detached RABBITMQ_NODENAME=<rabbitmq_nodename>

# 新增用户 admin,密码为 123,并设置最高权限后加入管理员组
rabbitmqctl add_user admin 123
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator

# 查看状态
rabbitmqctl -n rabbitmq1 status

# WEB地址: http://localhost:15672
# API文档: http://localhost:15672/api/
# 容器: docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

RabbitMQ 相关命令

# 新增用户 admin,密码为 123
rabbitmqctl add_user admin 123

# 更改密码
rabbitmqctl change_password admin 123456

# 查看用户列表
rabbitmqctl list_users

# 查看用户权限
rabbitmqctl list_user_permissions admin 

# 赋予用户全部操作权限(格式: -p 针对哪个虚拟机、哪个用户、哪个配置、是否可写、是否可读)
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

# 将 admin 用户加入管理员组
rabbitmqctl set_user_tags admin administrator

# (最后操作) 由于 RabbitMQ 默认的账号用户名和密码都是 guest,为安全起见需删除默认用户
rabbitmqctl delete_user guest

# 重置/初始化
rabbitmqctl reset

# 查看集群状态
rabbitmqctl cluster_status

# ----------------------------------------------------------- 

# 相关可执行文件 ...
# [root@localhost sbin]# ll -al
# -rwxr-xr-x 1 root root  1480 Jan 17  2018 rabbitmqctl
# -rwxr-xr-x 1 root root  1885 Jan 17  2018 rabbitmq-defaults
# -rwxr-xr-x 1 root root 12095 Jan 17  2018 rabbitmq-env
# -rwxr-xr-x 1 root root  1362 Jan 17  2018 rabbitmq-plugins
# -rwxr-xr-x 1 root root 10971 Jan 17  2018 rabbitmq-server

### RabbitMQ 使用指南和教程 #### 安装 RabbitMQ RabbitMQ 是一种基于 AMQP 协议的消息中间件,用于实现分布式系统的可靠消息传递。以下是安装 RabbitMQ 的基本流程: 1. **安装 Erlang** RabbitMQ 基于 Erlang 编程语言开发,因此需要先安装 Erlang 运行环境。可以通过包管理器或者下载官方二进制文件完成安装。 2. **安装 RabbitMQ Server** 下载并安装 RabbitMQ Server 软件包。对于 Linux 用户,可以使用以下命令: ```bash sudo apt-get install rabbitmq-server ``` 3. **启动服务** 启动 RabbitMQ 服务后,默认监听端口为 `5672`(AMQP 协议),Web 管理界面默认运行在 `15672` 端口上。 ```bash sudo systemctl start rabbitmq-server ``` 4. **启用 Web 管理插件** 可通过以下命令启用 RabbitMQ 提供的 Web 管理工具: ```bash sudo rabbitmq-plugins enable rabbitmq_management ``` --- #### 配置用户与权限 为了安全访问 RabbitMQ 实例,通常需要创建自定义用户并分配相应权限。 - 创建新用户: ```bash rabbitmqctl add_user rabbitmq 211314 ``` 此操作会新增名为 `rabbitmq` 的用户,并将其密码设为 `211314`[^1]。 - 设置用户角色: ```bash rabbitmqctl set_user_tags rabbitmq administrator ``` 将该用户的标签设定为管理员角色,使其拥有完全控制权[^1]。 - 授予用户权限: ```bash rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*" ``` 上述命令授予用户对根虚拟主机 `/` 中所有资源的操作权限[^1]。 - 查看现有用户及其角色: ```bash rabbitmqctl list_users ``` --- #### 集群配置 RabbitMQ 支持多种集群模式来提升可用性和性能。主要分为两类:普通模式和镜像模式。 - **普通模式** 在这种模式下,各节点独立存储队列中的数据和其他元信息(如交换机)。当客户端尝试消费某个不在当前连接节点上的消息时,目标节点会被请求转发所需的数据[^2]。 - **镜像模式** 对比之下,在镜像模式中,指定队列的内容将在多个节点间保持一致副本。即使部分成员失效,剩余存活节点仍能继续提供完整的服务功能[^2]。 > 注意事项:尽管镜像模式提高了可靠性,但也带来了额外开销——网络流量增加以及写入延迟上升等问题需被充分考虑进去。 --- #### 应用集成示例 假设要在一个 Java 或 Python 应用程序里利用 RabbitMQ 来发送/接收消息,则可能涉及以下几个步骤: 1. **声明交换器 (Exchange)** 和绑定关系: ```java channel.exchangeDeclare(exchangeName, "direct", true); channel.queueDeclare(queueName, true, false, false, null); channel.queueBind(queueName, exchangeName, routingKey); ``` 如此一来便完成了持久化队列及路由键关联工作[^3]。 2. 发布一条测试消息至上述已建立好的通道路径之中; 3. 订阅对应主题下的事件流以便实时捕获最新动态更新情况; --- #### 总结 以上涵盖了从基础安装到高级特性使用的整个过程概述。希望这些指导能够帮助您快速掌握如何部署与维护属于自己的 RabbitMQ 平台实例! 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值