美文网首页
rabbitmq入门学习

rabbitmq入门学习

作者: 原来不语 | 来源:发表于2019-04-19 14:32 被阅读0次

    一条消息的产生到消费:
    生产者发送一条消息时,先和RabblitMQ直接建立一条通道(channl),通过channl将消息发送到交换器,
    交换器通过特定的路由规则routing_key,将消息转发到特定的队列上。

    RabblitMQ会监听该队列,一旦有消费者订阅该队列,则将消息发送给该消费者处理,然后将消息从消息队列中删除

    RabbitMQ 基础命令
    Virtual_host管理
    新建:rabbitmqctl add_vhost xxx
    撤销: rabbitmqctl delete_vhost xxx

    用户管理:
    新建用户:rabbitmqctl add_user usernamexxx pwdxxx
    删除用户:rabbitmqctl delete_user usernamexxx
    修改密码:rabbitmqctl change_password {username} {newpassword}
    设置用户角色:rabbitmqctl set_user_tags {username} {tag...}
    tag 可以为: administrator, monitoring, management

            rabbitmqctl set_permissions -p / username ".*" ".*" ".*"  //添加权限
    

    rabbitmqctl set_user_tags username administrator //修改用户角色

    权限设置说明:rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {read}
    Vhostpath:Vhost路径。
    user:用户名。
    Conf:一个正则表达式match哪些配置资源能够被该用户访问。
    Write:一个正则表达式match哪些配置资源能够被该用户读。
    Read:一个正则表达式match哪些配置资源能够被该用户访问。

    清除所有队列:rabbitmqctl reset
    查看队列信息:rabblimqctl list_queues
    可以直接运行rabbitmqctl 来管理自己的mq节点,也可以指定-n rabbit@[servername]来管理远程节点
    servername可以是ip或者域名
    队列和交换器的durable 属性默认false ,断电重启之后重新创建队列,消息丢失,将它设置为true可以不
    用重新建队列

    持久化消息:能从服务器崩溃中恢复消息
    (1)消息发布前,将它的投递模式设置为2标记持久化
    (2)发送到持久的交换器
    (3)并投放到持久化队列
    恢复:写入磁盘上的持久化文件,rabbit会在消息提交到日志后才发送响应,但若消息路由到了
    非持久化队列,RQM会自动从持久性日志删除,并无法在重启中自动恢复。

    exchange 交换机和绑定routing key

    exchange 的作用就是类似路由器,routing key 就是路由键,服务器会根据路由键
    将消息从交换机路由到队列上去。
    exchange 有多个种类,direct、fanout、topict、header(非路由键匹配,功能和direct类
    似,很少用。)前三种类似集合对应关系那样,(direct) 1:1, (fanout) 1:N
    (topic) N:1

    direct 1:1 类似完全匹配。
    fanout 1:N可以把一个消息并行到多个队列,当多个队列绑定到fanout的交换器
        ,那么交换器一次性拷贝多个消息分别发送到绑定的队列上,每个队列有这个消息的副本。
    

    相关文章

      网友评论

          本文标题:rabbitmq入门学习

          本文链接:https://www.haomeiwen.com/subject/onqxwqtx.html