一、消息中间件简介
消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
常见的消息队列
二、 kafka简介
Kafka 本质上是⼀个消息队列。与zeromq不同的是,Kafka是一个独立的框架而不是一个库。这里主要介绍其原理,至于具体的安装等操作不做介绍,只是提示一下,第一次运行时,先设置前台运行,看会不会报错。
Kafka的特性
- 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒
- 可扩展性:kafka集群支持热扩展
- 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
- 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
- 高并发:支持数千个客户端同时读写
三、 RabbitMQ
RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员帮你传递快件。RabbitMQ与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。
RabbitMQ的特性
- 可靠性:RAbbitMQ使用一些机制来保证消息可靠性,如持久化,传输确认以及发布确认;
- 灵活的路由:在消息进入队列之前,通过交换机来路由信息;
- 扩展性:多个RabbitMQ可以组成一个集群,,也可以根据业务情况动态的扩展集群中的节点;
- 多语言客户端:RabbitMQ支持非常多的语言,如Java,Python,Ruby,PHP,C#,JavaScript等;
- 管理界面:RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息和集群中的节点等;
- 插件机制:RabbitMQ提供了许多插件,实现从多方面进行扩展,也可以编写自己的插件。
未完待更