Kafka基本概念

*************************************消息中间件的作用*****************************************************

解耦

异步

削峰

*************************************消息中间件的基本需求*************************************************

消息的发送和接受

消息的存储

是否支持跨语言

消息的确认机制

支持集群

*************************************消息中间件的高级需求**************************************************

 消息是否有序

是否支持事务消息

是否支持及高并发和大数据觉得存储

是否支持可靠性存储

是否支持多协议

是否收费

 ***********************************************************************************************************

 

 

 

 

 

kafka基本介绍:Kafka 起初是由Linkedin 公司采用Scala 语言开发的一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现己被捐献给Apache 基金会。目前Kafka 已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。

 

Kafka体系结构:

(1) Producer : 生产者,也就是发送消息的一方。生产者负责创建消息, 然后将其投递到Kafka 中。

(2) Consumer:消费者,也就是接收消息的一方。消费者连接到Kafka 上并接收消息,进而进行相应的业务逻辑处理。

(3) Broker :服务代理节点。Broker 可以简单地看作一个独立的Kafk服务节点或Kafka 服务实例。大多数情况下也可以将Broker 看作一台Kafka 服务器,前提是这台服务器上只部署了一个Kafka 实例。一个或多个Broker 组成了一个Kafka 集群。一般而言,我们更习惯使用首字母小写的broker 来表示服务代理节点。在Kafka 中还有两个特别重要的概念

  主题( Topic )

  分区( Partition )。

   Kafka 中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题(发送到Kafka 集群中的每一条消息都要指定一个主题),而消费者负责订阅主题并进行消费。主题是一个逻辑上的概念,它还可以细分为多个分区,一个分区只属于单个主题,很多时候也会把分区称为主题分区( Topic-Partition )。同一主题下的不同分区包含的消息是不同的,分区在存储层面可以看作一个可追加的日志( Log )文件,消息在被追加到分区日志、文件的时候都会分配一个特定的偏移量( offset )。offset 是消息在分区中的唯一标识, Kafka 通过它来保证消息在分区内的顺序性,不过offset 并不跨越分区,也就是说, Kafka 保证的是分区有序而不是主题有序。

 

posted @ 2019-08-22 02:37  落叶随风起  阅读(139)  评论(0编辑  收藏  举报