docker for rabbitmq

梦想的初衷 提交于 2020-02-27 12:40:33

################################
        docker for rabbitmq
################################

一. 安装rabbitmq

      1.1 docker pull rabbitmq:3.7.17-management

      1.2 docker run -d --name rabbitmq3.7.17 -p 5672:5672 -p 15672:15672 -v ~/data/rabbitmq:/var/lib/rabbitmq --hostname myRabbit \
            -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.7.17-management

       1.3 #设置权限
           rabbitmqctl  set_permissions -p my_vhost admin '.*' '.*' '.*'

二.  rabbitmq 控制台

        2.1 帐号密码:见docker run命令中RABBITMQ_DEFAULT_USER、RABBITMQ_DEFAULT_PASS

        2.2 进入控制台http://IP:15672/,需要根据业务需要新建queues

新增exchange 、 Routing key

三. springboot项目使用rabbitmq

      3.1 springboot中application.properties配置:

server.servlet.context-path=/fitz-boot-rmq
spring.rabbitmq.host=192.168.99.100
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=admin
spring.rabbitmq.virtual-host=my_vhost
# Minimum number of listener invoker threads.
spring.rabbitmq.listener.simple.concurrency=2
# Maximum number of listener invoker threads.
spring.rabbitmq.listener.simple.max-concurrency=5

pom引用:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

 

四. 补充

                交换器主要有四种类型:direct、fanout、topic、headers,这里的交换器是 fanout发布/订阅模式
            如果消息发送到没有队列绑定的交换器时,消息将丢失,因为交换器没有存储消息的能力,消息只能存储在队列中。

      应用场景:

          比如一个商城系统需要在管理员上传商品新的图片时,前台系统必须更新图片,日志系统必须记录相应的日志,那么就可以将两个队列绑定到图片上             传交换器上,一个用于前台系统更新图片,另一个用于日志系统记录日志。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!