RabbitMQ在Widows环境安装使用

下载安装包,参考: https://www.cnblogs.com/yakniu/p/16183938.html
  • 查看已有用户和用户角色

-- mq的sbin目录下执行如下命令

命令:rabbitmqctl.bat list_users
  • 新增一个用户:

命令:rabbitmqctl.bat add_user username password
例如 :rabbitmqctl.bat add_user admin ENC(nnvjnZmJwu1AoctA9aV5kg==)

admin 后面没有“[administrator]”这就涉及到用户角色问题了:

  • 角色设置

按照我个人理解,rabbitmq用户角色可分为五类:超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。

(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

(5) 其他的
无法登陆管理控制台,通常就是普通的生产者和消费者。
设置admin 变成超级管理员角色:
命令:rabbitmqctl.bat set_user_tags username administrator

例如:rabbitmqctl.bat set_user_tags admin administrator

效果展示:

  • 密码修改

命令:rabbitmqctl change_password userName newPassword
例如:修改admin密码为admin
rabbitmqctl change_password admin admin
  • 用户删除

rabbitmqctl.bat delete_user username
  • 权限设置

参考: https://www.cnblogs.com/wyt007/p/9086233.html
首先创建VirtualHost,可以通过以下命令来创建。
rabbitmqctl add_vhost[vhostname]

客户端登录:http://localhost:15672/

#设置用户权限
rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP
例如:rabbitmqctl  set_permissions   admin  ".*" ".*" ".*"
 #查看(指定hostpath)所有用户的权限信息
rabbitmqctl  list_permissions  [-p  VHostPath]

# 查看指定用户的权限信息
rabbitmqctl  list_user_permissions  User

# 清除用户的权限信息
rabbitmqctl  clear_permissions  [-p VHostPath]  User

代码测试:

private final static String QUEUE_NAME = "hello";


public static void main(String[] args) throws IOException, TimeoutException {
   // 创建连接
   ConnectionFactory factory = new ConnectionFactory();
   // 设置 RabbitMQ 的主机名
   factory.setHost("localhost");


   factory.setUsername("admin");
   factory.setPassword("admin");
   factory.setPort(5672);


   // 创建一个连接
   Connection connection = factory.newConnection();
   // 创建一个通道
   Channel channel = connection.createChannel();
   // 指定一个队列,不存在的话自动创建
   channel.queueDeclare(QUEUE_NAME, false, false, false, null);
   // 发送消息
   String message = "Hello World!";
   channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
   System.out.println(" [x] Sent '" + message + "'");
   // 关闭频道和连接
   channel.close();
   connection.close();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值