rabbitMQ学习-简介(1)
什么是消息中间件
- 消息中间件,是指利用高效可靠的消息传递机制进行通信,通过数据通信来进行分布式系统的集成。
- 目前开源的消息中间件有很多,比较流行的有RabbitMq、kafka、activeMQ、rocketMQ等。
- 消息中间件运行模式:发送者将消息发送给消息服务器,消息服务器将消息存放到若干的队列中,在合适的时候再将消息转发给接收者。
消息中间件的作用
- 解耦:服务解耦,及时响应。
- 数据存储:有些处理数据会失败,然后数据会丢失。但消息中间件可以持久化数据直到消费者把数据处理完成。
- 拓展性
- 削峰:在访问量或者大量数据处理,推到队列中,消费者不会因为突发的数据或者访问量崩溃。
- 可恢复性:降低耦合度,即使消费者挂了,也不影响向队列中推送数据。消费者恢复之后任然可以处理队列中的数据。
- 顺序保证:队列中数据有序的。
- 缓冲:提高数据流过系统的时间,快速响应,尽可能快速的推送到队列中
- 异步通信:数据不需要立即处理,放入消息中间件中,在之后可以慢慢处理。
rabbitmq 起源
- 使用Erlang语言开发,网上说是一门天生支持并发的语言。
- 支持AMQP(高级消息队列协议)的消息中间件
- 首先是用于金融领域。
- 2006年6月,指定AMQP的公开标准。它时应用层协议的一个标准,基于此协议的客户端和消息中间件可传递消息,不受产品、开发语言等条件限制。
rabbitMq的特点
- 可靠性:持久化,传输确认、发布确认
- 灵活路由
- 拓展性:动态增加节点
- 高可用:队列在集群服务器中的机器设置了镜像,部分节点出现问题队列仍然可以使用
- 多种协议:除了AMQP协议,STOMP,MQTT
- 支持多语言
- 管理界面:服务器 15672端口
- 插件机制