1.服务为管理
Erlang天生就是为了让应用程序无需知道对方是否存在同一台机器上即可互相通信。
Erlang节点:Erlang虚拟机的每个实例。多个Erlang应用程序可以运行在同一个节点之上。节点之间可以进行本地通信(不管他们是运行在同一台服务器之上)。举例说明:一个运行在节点A上应用程序可以调用节点B上应用程序的方法,就好像调用本地函数一样。如果应用程序由于某些原因奔溃,Erlang节点会自动尝试重启应用程序。
1.1启动节点
在RabbitMQ的安装目录下运行./rabbitmq-server。也可以通过增加-detached参数的方式启动RabbitMQ节点,以守护程序的方式在后台运行:./rabbitmq-server -detached.
1.2停止节点
在RabbitMQ的安装目录下运行:./rabbitmqctl stop时,rabbitmqctl会和本地节点通信并指示其干净的关闭。也可以指定关闭不同的节点,包括远程节点。只需要传入-n [email protected][hostname]选项即可。这时整个Rabbitmq节点包括Erlang都关闭了。
停止RabbitMQ只需要运行:./rabbitmactl stop_app即可。
1.3RabbitMQ的配置文件
[ {mnesia,[{dump_log_write_threshold,1000}]}, {rabbit,[{vm_memory_high_watermark,0.4}]} ]
rabbitmq的配置文件是一个包含了嵌套哈希表表的数组。通过外部配置数组,每个Erlang应用程序会有自己的哈希表来配置选项。
注意:RabbitMQ中的每个队列、交换器和绑定的元数据都是保存到Mnesia的。Mnesia是内建在Erlang的非SQL数据库。Mnesia通过将RabbitMQ元数据写入一个仅限追加的日志文件以确保其完整性。然后在定期将日志内容转储到真实的Mnesia数据库文件中。
2.请求许可
可以为连接到RabbitMQ上的用户设置不同级别的权限(读、写和配置).RabbitMQ权限的好处是在于单个用户可以跨越多个Vhost进行授权。
2.1管理用户
在RabbitMQ中,用户是访问控制的基本单元。针对一到多个vhost,其可以被赋予不同级别的访问权限,并使用标准的用户名/密码来认证用户。对用户的增加、删除以及列出列表非常简单。这些操作都是通过rabbitmqctl来完成。
创建用户的命令如下:
./rabbitmqctl add_user username password
删除用户的命令如下:
./rabbitmqctl delete_user username
当删除用户的时候,任何引用该用户的访问控制条目都会从rabbit权限数据库中自动删除。
查看所有用户的命令如下:
./rabbitmqctl list_users
修改已经存在的用户的密码的命令如下:
./rabbitmqctl change_password username newpassword