kafka是一种高可用,高吞吐量,基于zookeeper协调的分布式发布订阅消息系统。

消息中间件:生产者和消费者

举个例子:

  生产者:做馒头,消费者:吃馒头,数据流:馒头

如果消费者宕机了,吃不下去了,那么馒头就浪费了,所以生产者生产之后丢在篮子里,消费者要吃的时候到篮子立面去取。

  这个篮子就好比我们的kafka,起到一个缓冲的作用,如果篮子满了装不下馒头了,那就多准备几个篮子,多准备篮子就是kafka的扩容

producer:生产者,生产馒头的

consumer:消费者,吃馒头的

broker:篮子

topic:主题,相当于给馒头打一个标签,并不是生产者生产的所有馒头消费者都会吃的。比方说topicA馒头是给你吃的,topicB馒头是给你妹妹吃的

消息系统有两种模式:peer to peer,和发布/订阅

peer to peer:
1.一般基于pull和polling接收消息
2.发送到队列的消息被一个且仅仅被一个接收者接收,即便有多个接收者在队列中监听同一消息
3.支持异步"即发即弃"的消息传送方式,也支持同步请求/应答传送方式。意思是我们即可以发送完就滚蛋,也可以发送完不走,确定被接收者接收之后再走

发布/订阅
1.发布到一个主题的消息,可被多个订阅者接收
2.发布/订阅即可基于push消费数据,也可以基于pull/polling消费数据
3.解耦能力比peer to peer模型更强

消息系统适用场景:
1.解耦:各位系统之间通过消息系统这个统一的接口交换数据,无需了解彼此的存在
2.冗余:部分消息系统具有消息持久化的能力,可规避消息处理前丢失的风险
3.扩展:消息系统是统一的数据接口,各系统可独立扩展
4.峰值处理能力:消息系统可顶住峰值流量,业务系统可根据处理能力从消息系统中获取对应处理量的请求
5.可恢复性:系统中部分组件失效并不会影响整个系统,回复之后仍然可以从消息系统中获取数据
6.异步通信:在不需要立即处理请求的场景下,可以将请求放入消息系统,合适的时候再处理

常用消息系统对比:
rabbitMQ:erlang编写,支持多协议,AMQP,XMPP,SMTP,STOMP.支持负载均衡,数据持久化。同时支持peer to peer和发布/订阅模式
Redis:基于key-value的nosql数据库,同时支持MQ功能,可做轻量队列使用。就入队操作而言,对短消息(小于10kb)的处理,redis的性能比rabbitmq要好
kafka/jafka:高性能跨语言的分布式发布/订阅消息系统,数据持久化,全分布式,同时支持在线和离线处理。jafka是kafka的java实现。
以及还有zeroMQ,activeMQ,MetaQ等等这里就不推荐了,个人建议使用rabbitMQ或者kafka

kafka的设计目标:
高吞吐率:在链家的商用机器上单机可支持每秒100万条消息的读写,尽管是把消息持久化到磁盘,但是不代表性能低,实际上吞吐率是相当高的
消息持久化:所有消息均被持久化到磁盘,无消息丢失,支持消息重放
完全分布式:producer,broker,consumer均支持水平扩展
同时满足适应在线流处理和离线流处理,现在的sparkStreaming也和kafka结合的比较好。也可以将kafka里的数据导入到HDFS里面,方式也比较多,一般是通过flume的kafka source将kafka的数据拿过来,在使用flume的hdfs sink或者hive sink将数据导入hdfs或者hive进行离线的流式批处理

1.kafka的介绍的更多相关文章

  1. Kafka入门介绍

    1. Kafka入门介绍 1.1 Apache Kafka是一个分布式的流平台.这到底意味着什么? 我们认为,一个流平台具有三个关键能力: ① 发布和订阅消息.在这方面,它类似一个消息队列或企业消息系 ...

  2. Kafka设计解析(十四)Kafka producer介绍

    转载自 huxihx,原文链接 Kafka producer介绍 Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本produce ...

  3. kafka基础介绍

    kafka基础介绍 一.kafka介绍 1.1主要功能 根据官网的介绍,kafka是一个分布式流媒体的平台,它主要有三大功能: 1.11:It lets you publish and subscri ...

  4. 【转帖】Kafka入门介绍

    Kafka入门介绍 https://www.cnblogs.com/swordfall/p/8251700.html 最近在看hdoop的hdfs 以及看了下kafka的底层存储,发现分布式的技术基本 ...

  5. kafka架构,消息存储和生成消费模型,Kafka与其他队列对比,零拷贝,Kafka基本介绍

    kafka架构,消息存储和生成消费模型,Kafka与其他队列对比,零拷贝,Kafka基本介绍 一.初识kafka 1.1SparkStreaming+Kafka好处: 1.2Kafka的架构: 二.k ...

  6. [Kafka] - Kafka 安装介绍

    Kafka是由LinkedIn公司开发的,之后贡献给Apache基金会,成为Apache的一个顶级项目,开发语言为Scala.提供了各种不同语言的API,具体参考Kafka的cwiki页面: Kafk ...

  7. kafka搜索介绍

    kafka详解  https://blog.csdn.net/liubenlong007/article/details/55211196##1  1.2 Kafka诞生 Kafka由 linked- ...

  8. 第1节 kafka消息队列:1、kafka基本介绍以及与传统消息队列的对比

    1. Kafka介绍 l  Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开发的一个开源消息系统项目. l  Kafka最初是由LinkedIn开发,并于20 ...

  9. 【Kafka】Kafka简单介绍

    目录 基本介绍 概述 优点 主要应用场景 Kafka的架构 四大核心API 架构内部细节 基本介绍 概述 Kafka官网网站:http://kafka.apache.org/ Kafka是由Apach ...

  10. kafka综合介绍

    设计目标 高吞吐率.即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输. 支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输 同 ...

随机推荐

  1. htm,html,xhtml,xml,xsl,dhtml,shtm和shtml的区分

    介绍一下htm,html,xhtml,xml,shtml的区分,以下内容来自百度后的知识整理. HTML和htm: HTML(Hypertext Markup Language)超文本传输语言,是ww ...

  2. spring环境搭建(简单实例)

    1使用Maven导入需要的依赖(在project标签下) <properties> <spring_version>3.2.2.RELEASE</spring_versi ...

  3. Java课程设计--学生成绩管理系统

    一.团队名称: 团队成员 林艺薇 201721123032 网络1712 黄毓颖 201721123033 网络1712 唐川 201721123034 网络1712 梁才玉 201721123038 ...

  4. Java使用泛型的困顿

    原文有点儿胡说的意味,删了,有空再次更新这篇博文~

  5. [C/C++] extern关键字详解以及与static、const区别

    extern用法详解: 1. 声明外部实体 声明外部全局变量或对象,一般用于头文件中,表示在其它编译单元内定义的变量,链接时进行外部链接,如: extern int ivalue; 此时的extern ...

  6. 【bzoj4627】[BeiJing2016]回转寿司 离散化+树状数组

    题目描述 给出一个长度为n的序列,求所有元素的和在[L,R]范围内的连续子序列的个数. 输入 第一行包含三个整数N,L和R,分别表示寿司盘数,满意度的下限和上限. 第二行包含N个整数Ai,表示小Z对寿 ...

  7. hdu 1856 More is better (并查集)

    More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) ...

  8. 洛谷 P2168 [NOI2015]荷马史诗 解题报告

    P2168 [NOI2015]荷马史诗 题目描述 追逐影子的人,自己就是影子 --荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷 ...

  9. Tourists——圆方树

    CF487E Tourists 一般图,带修求所有简单路径代价. 简单路径,不能经过同一个点两次,那么每个V-DCC出去就不能再回来了. 所以可以圆方树,然后方点维护一下V-DCC内的最小值. 那么, ...

  10. 如何优化JQuery each()函数的性能

    如果对jQuery这东西只停留在用的层面,而不知其具体实现的话,真的很容易用出问题来.这也是为什么近期我一直不怎么推崇用jQuery,这框架的API设定就有误导人们走上歧途之嫌. 01 $.fn.be ...