KAFKA

消息系统-kafka之一 系统简介

最近在研究消息中间件kafka,下面简单介绍一下kafka消息系统,首先,为什么使用消息中间件,有哪些消息中间件,为什么选择kafka为什么使用消息系统?1.首先就是消息系统的高性能,即使是非常普通的硬件可以支撑一秒几十万的消息2.消息队列对应用之间进行了解耦,应用之间不存在强依赖3.消息队列可以对消息数据进行持久化,这样即使处理消息的进程全部挂掉,也不会丢失已经加入消息队列的数据,对很多关键的业

最近在研究消息中间件kafka,下面简单介绍一下kafka消息系统,首先,为什么使用消息中间件,有哪些消息中间件,为什么选择kafka

为什么使用消息系统?

1.首先就是消息系统的高性能,即使是非常普通的硬件可以支撑一秒几十万的消息

2.消息队列对应用之间进行了解耦,应用之间不存在强依赖

3.消息队列可以对消息数据进行持久化,这样即使处理消息的进程全部挂掉,也不会丢失已经加入消息队列的数据,对很多关键的业务来说,规避数据丢失的风险是至关重要的

4.由于消息队列对应用之间进行了解耦,这也大大的增加了系统的可扩展性,从消息的产出和消息的消费

5.应对突发高并发流量,在访问量剧增的情况下,使用消息队列把请求进行缓冲和筛选,防止突发流量冲击后端接口,导致应用超时或是直接拒绝服务

6.使用消息队列可以在一定程度上保证数据的顺序性

那么有哪些消息中间件呢?

现在比较流行的MQ有:ActiveMQ,kafka,RabbitMQ,Redis,jafka,ZeroMQ

值得一提的是Redis作为基于key-value的NoSQL数据库,也可以作消息队列,并且完全可以作为一个轻量级的队列服务器来使用;除此之外,AMQ,RabbitMQ,ZeroMQ都是相对比较重量级的消息系统,尤其是ZeroMQ,虽然称作是最快的消息队列系统,但是复杂的配置和技术框架让很多开发者望而却步;然而kafka和jafka,作为一个高性能跨语言分布式发布/订阅消息队列系统,在具有以上消息系统的所有优点之外,在量级上相对于AMQ之类来说也是非常轻量级的。

为什么选择kafka?

kafka的优势如下:

1.可靠性,kafka的partition机制和replication机制,容错机制使消息的传递有着很高的可靠性

2.kafka支持集群规模的热扩展

3.kafka的高性能,在数据的发布和订阅过程中,都能够保证数据的高吞吐量,即使在TB的数据存储情况下,仍然表现出很好的稳定性

4.kafka的消息状态由consumer处理,可以根据重设offset实现消息的重复消费(这个也是我在做任务调度的时候,选择kafka的原因)

kafka架构简介

kafka可以实现两种类型的消息传递:点对点(单播),和订阅/发布(广播)

点对点

原创不易,完成人机校验,阅读全文

相关推荐