消息中间件之RabbitMQ

一.概述

1.1核心概念

1.1.1JMS

JMS  (JAVA MESSAGE SERVICE)

1.1.2 P2P

点对点发送,一个消息只能被消费一次

涉及:消息队列,发送者,接收者


特点:1.不用同时在线。2.一个消息只能被消费一次

1.1.3Pub/Sub

Pub/Sub发布订阅  一个消息可以被消费多次

涉及角色:主题(Topic)发布者(Publisher) 订阅者(Subscriber)

客户端将消息发送到主题,多个发布者将消息

特点

1.发布者和订阅者同时在线

2.一个消息可以被多个订阅者消费

1.1.4MQ

MQ:消息中间件,消息队列

作为系统间

1.2MQ的优缺

1.解耦

降低系统模块的耦合度

2.提高系统响应时间

3.异步消息

4.过载保护

基于MQ实现削峰填谷

1.3主流MQ对比

1.ActiveMQ

Apache下

完全支持java的JMS协议

消息模式:1.点对点 2.发布订阅

2.RabbitMQ

Erlang语言 实现的开源的MQ中间件,支持多种协议

3.Kafka

Apache下开源项目

高性能分布式消息队列,一般海量数据传输,大数据部门比用

单机吞吐量:10W/s

4.RocketMQ

阿里贡献给了Apache 参考了Kafka实现的基于java消息中间件

5.ZeroMQ

消息传输最快

二.RabbitMQ

2.1

2.2通信模块

涉及核心:

Exchange(交换机,交换器):根据绑定的匹配规则,对消息进行匹配处理。

Queue()

三.RabbitMQ初体验

涉及角色:

1.MQ服务器

可基于Docker安装RabbitMQ

记住:15672:网页版,可视化服务器数据

5672:客户端连接点的端口号

3.2.MQ消息发送者

1.依赖jar

2.代码编写

(1)创建连接工厂

设置连接线信息

(2)获取连接对象

(3)创建通道

(4)定义队列


3.运行测试

查看控制台能否获取消息。

四.RabbitMQ的消息模式

4.1普通消息

点对点消息

一个消息只能消费一次

只需要队列就可以,不需要交换器

4.2交换器消息


fanout:只要有消息就转发给绑定的队列,不会进行消息的路由判断。


五.RabbitMQ消息的总结

你可能感兴趣的:(消息中间件之RabbitMQ)