################################
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发布/订阅模式
如果消息发送到没有队列绑定的交换器时,消息将丢失,因为交换器没有存储消息的能力,消息只能存储在队列中。
应用场景:
比如一个商城系统需要在管理员上传商品新的图片时,前台系统必须更新图片,日志系统必须记录相应的日志,那么就可以将两个队列绑定到图片上 传交换器上,一个用于前台系统更新图片,另一个用于日志系统记录日志。
来源:oschina
链接:https://my.oschina.net/fitzcore/blog/3160994