消息指的是两个应用间传递的数据。数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象。
“消息队列(Message Queue)”是在消息的传输过程中保存消息的容器。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。
简单的举例解释就是:
小张让小王看书,由于小王看书需要时间,小张是看到好看的书就想让小张看。所以,小张将书放到书架上,小王只管在书架上取书看即可,小张也不需要去通知小王,他看到好看的书放到书架上即可。这个书架就是消息队列,小张就是生产者,小王是消费者。
首先安装Rabbitmq,测试完安装后,打开浏览器,输入:http://localhost:15672,来到图形化界面登录页,输入用户名:guest和密码:guest登录页面。
首页进去是一个TOP横幅,上面是RabbitMQ的版本和Erlang版本信息.
1.Overview(概述)
记录一些本地rabbit的磁盘信息和内存占用,而后是一个监听端口,意思是协议的端口。
这里我们需要记下amqp协议的端口5672.因为rabbitmq就是遵从amqp协议的erlang语言实现的消息列队框架技术.也就是我们需要在rabbitmq开发和实现时,必须要用此端口来进行连接.
3. Connections (连接)
连接界面此时是空的,看似什么也没有,但是通过词意大概可以猜想到,这个界面记录应该是展示客户端或者某个服务连接到此rabbitmq的信息展示,那么通过什么连接呢?
IP?用户名?密码?还有端口,前3个都有了,那么后面的端口呢,是不是概述里面的监听协议端口。显然是的。
刚入门之初,我一直以为是15672,事实证明是错的,5672才是正确的协议连接端口。
连接成功,用的协议amqp当然用的是协议端口。
4. Channels 信道
信道抽象理解一下,就是在创建连接的时候,我们还需要给一个信道,其实就是我们刚刚举例的书架。
5. Exchanges (交换机)
交换机的理解就是在第三步创建信道后,信道上需要设置一个交换器.那么用交换器去做什么呢,往下看.
界面一个列表,Name列就是名称,Type是交换器类型,既然类型那么交换器肯定通过类型会做不同的逻辑处理.还有一个Features特性列,证明在我们实现代码的时候也需要如此定位类型。
D表示(durable(持久化的)),I表示(internal(内在的))
词面理解交换器可以是持久化的也可以定义为内部内在的,外部无法访问,只能通过交换器之间来访问
接下来点开某个交换器看下
4.1 绑定queue(列队)Routing key(路由) Arguments(参数)
4.2 发布信息Routing key(路由) 证明这个Routing key(路由key)也是至关重要的.
交换器绑定通过路由key绑定列队进行消息发布.
5 Queues(列队)
列队用于存储消息.等待消息被接收.
在理论层面上来看,以上都是生产者需要做的工作
5 Admin(用户)
以上为登录用户管理,可以新增和管理用户权限,我已经新增了一个test用户。
java如何操作rabbitmq下个文章详解…