美文网首页
RabbitMQ消息队列

RabbitMQ消息队列

作者: 榷奕 | 来源:发表于2019-08-22 16:57 被阅读0次

    1. 安装教程

    (1) Docker环境安装

    安装yum-utils:

    yum install -y yum-utils device-mapper-persistent-data lvm2
    

    为yum源添加docker仓库位置:

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    安装docker:

    yum install docker-ce
    

    启动docker:

    systemctl start docker
    
    (2) RabbitMQ安装
    • 下载rabbitmq3.7.15的docker镜像:
    docker pull rabbitmq:3.7.15
    
    • 使用docker命令启动:
      docker run -d --name rabbitmq \
      --publish 5671:5671 --publish 5672:5672 --publish 4369:4369 \
      --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \
      rabbitmq:3.7.15
    
    • 进入容器并开启管理功能:
    docker exec -it rabbitmq /bin/bash
    rabbitmq-plugins enable rabbitmq_management
    

    (3) rabbitmq15672的内部设置

    • 访问地址查看是否安装成功:[http://192.168.3.101:15672/]


    • 输入账号密码并登录:guest guest
    • 添加用户test/test



      (这里很重要的一步,是还要在tag上面设置为Administrator,设完这个之后,才能在外面用test登录)

    • 添加一个virtual host 叫hospital


    • 给test设置hospital的权限


    2. 使用教程

    (1) 使用场景

    首先思考的是队列对应了什么,队列和消费者是一一对应的,一个队列对应了一个消费者。
    一个队列一般对应了一个模块里面的一个功能,所以一个模块里面有几个功能需要,就可以有几个监听器。
    而生产者的问题几乎可以另外考虑,基本也是一个功能,然后这个功能往队列里面添加。
    所以队列是按照功能划分的,并不是按照什么用户id之类的东西,fanout也不是那么用的,over。

    (2) 思路

    紧接着,我们进入实战的核心阶段,在项目或者服务中使用 RabbitMQ,其实无非是有几个核心要点要牢牢把握住,这几个核心要点在撸码过程中需要“时刻的游荡在自己的脑海里”,其中包括:

    我要发送的消息是什么

    我应该需要创建什么样的消息模型:DirectExchange+RoutingKey?TopicExchange+RoutingKey?等

    我要处理的消息是实时的还是需要延时/延迟的?

    消息的生产者需要在哪里写,消息的监听消费者需要在哪里写,各自的处理逻辑是啥

    3. 使用教程

    部分使用教程在纯洁微笑42讲里面。
    (1)yml的注意事项

    #注意1,rabbitmq的链接写在spring分组下面
    spring:
      profiles:
        active: dev
      application:
        name: hospital-log
      rabbitmq:
        host: 39.100.144.125 # rabbitmq的连接地址
        #注意2,port写5672
        port: 5672 # rabbitmq的连接端口号
        #注意3,vertualhost后面写的没有斜杠,直接是hospital
        virtual-host: hospital # rabbitmq的虚拟host
        #注意4,新建的这个test账户一定是Administrator,也就是在15672那个网页能直接登录的
        username: test # rabbitmq的用户名
        password: test # rabbitmq的密码
        publisher-confirms: true #如果对异步消息需要回调必须设置为true
    

    (2) pom没有任何注意事项
    (3) 生成队列和Exchange什么的
    只要你在RabbitConfig那个Configuration类里面,写了Queue的Bean,或者写了Exchange什么的Bean,直接就能在RabbitMQ里面生成,你只要写一个Bean,两三行就行了,直接生成。

    相关文章

      网友评论

          本文标题:RabbitMQ消息队列

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