Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RabbitMQ - 应用最广泛的开源消息代理软件 #23

Open
dolphin836 opened this issue Jul 28, 2020 · 0 comments
Open

RabbitMQ - 应用最广泛的开源消息代理软件 #23

dolphin836 opened this issue Jul 28, 2020 · 0 comments

Comments

@dolphin836
Copy link
Owner

dolphin836 commented Jul 28, 2020

导航

RabbitMQ 官网

RabbitMQ Erlang

简介

AMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计

消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然

AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全

RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种客户端

RabbitMQ 是使用 Erlang 语言开发的,所以安装 RabbitMQ 之前需要先安装 Erlang,并且要特别注意相互之间版本的对应关系

使用

服务管理

[root@CentOS ~]# systemctl start|status|restart|enable|stop rabbitmq-server

启用管理面板

[root@CentOS ~]# rabbitmq-plugins enable rabbitmq_management

管理面板默认使用的端口是 15672,现在我们一般都是使用云服务器,都会启用安全组来限制端口的访问,如果要远程访问管理面板,就需要将 15672 加入安全组的白名单

还有一种方式就是使用 Nginx 代理,这样安全组不用新开端口(80 端口肯定是已经有了的)

Nginx 配置

server {
        listen       80;
        server_name rabbitmq.xxx.com;

        location / {
             proxy_pass http://127.0.0.1:15672;
        }
}

用户管理

RabbitMQ 安装完成后,会默认创建一个叫 / 的虚拟主机,并且创建一个用户名为 guest 密码也是 guest 的账号,但是为了安全,guest 只能本机登录,没有远程访问的权限

RabbitMQ 中虚拟主机的概念可以类比为 MySQL 中的库,一般给一个项目分配一个虚拟主机,对应的分配一个用户

[root@CentOS ~]# rabbitmqctl list_users # 查看用户列表
[root@CentOS ~]# rabbitmqctl add_user test 123456 # 新增用户 `test` 密码 `123456`
[root@CentOS ~]# rabbitmqctl set_user_tags test administrator # 为用户 `test` 分配 `administrator` 角色
[root@CentOS ~]# rabbitmqctl set_permissions -p / test ".*" ".*" ".*" # 为用户 `test` 分配 `/` 虚拟主机的权限
[root@CentOS ~]# rabbitmqctl add_vhost test # 创建虚拟主机 `test`
[root@CentOS ~]# rabbitmqctl set_permissions -p test test ".*" ".*" ".*" # 为用户 `test` 分配 `test` 虚拟主机的权限
@dolphin836 dolphin836 self-assigned this Jul 28, 2020
@dolphin836 dolphin836 changed the title RabbitMQ 应用笔记 RabbitMQ 简单配置 Jul 28, 2020
@dolphin836 dolphin836 changed the title RabbitMQ 简单配置 RabbitMQ - 应用最广泛的开源消息代理软件 Jul 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant