01.RabbitMQ简单使用

Posted perferect

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01.RabbitMQ简单使用相关的知识,希望对你有一定的参考价值。

官网地址:https://www.rabbitmq.com/getstarted.html

RabbitMQ

1.docker 安装 RabbitMQ

 docker pull rabbitmq:management //拉去rabbitmq管理版
 //启动rabbitmq
 docker run -d -p 15672:15672  -p  5672:5672  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq --hostname=rabbitmqhostone  rabbitmq:management
 
//插看rabbitmq是否启动    
 docker ps

//查看docker管理系统
 http://ip:15672 

2.RabbitMQ的几个基本概念

2.1 服务器结构和概念

2.2 Exchange几种模式

1.simple
一对一
技术图片

2.work queues
在工人之间分配任务(竞争的消费者模式)
一个exchange,一个queues,一个provder,多个consumer;一个任务多个消费者竞争完成;
技术图片

3.Publish/Subscribe
Sending messages to many consumers at once(同时向多个消费者发送信息)

技术图片

4.Routing
Receiving messages selectively(有选择地接收消息)

技术图片

5.Topics
Receiving messages based on a pattern (topics) 基于模式(主题)接收消息。
技术图片
技术图片

  这个是这几种模式中比较难理解的:

  其中涉及到了两个“key”,一个是routerKey,另一个是bindingkey.
    routeKey是消息发送给交换机的key值。
    bindingkey是exchange绑定queue时的key值。

  路由key和模式进行匹配。queue需要绑定这个模式(bindingkey)。
  模式将字符串切割成为字符串,用.进行切割,有两种通配符:
    1.*匹配一个单词
    2.#匹配0个或多个字符

6.RPC
Request/reply pattern 请求/应答模式
技术图片

3.几个注意点

  • durable设置问题:如果不设置durable会存在什么问题?
rabbitMQ默认将消息存储在内存中,若rabbitMQ宕机,那么所有数据就会丢失,未申明durable的交换器和队列都会被删除。
所以在声明队列的时候可以声明将数据持久化,但是如果已经声明了一个未持久化的队列,那么不能修改,只能将这个队列删除或重新声明一个持久化数据。
1.将queue的持久化标识durable设置为true,则代表是一个持久的队列
2.发送消息的时候将deliveryMode=2













以上是关于01.RabbitMQ简单使用的主要内容,如果未能解决你的问题,请参考以下文章

创建自己的代码片段(CodeSnippet)

为啥这段代码会泄露? (简单的代码片段)

如何使用Android片段管理器传递变量[重复]

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

代码片段 - Golang 实现简单的 Web 服务器

nodejs常用代码片段