1.kafka的介绍
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的介绍的更多相关文章
- Kafka入门介绍
1. Kafka入门介绍 1.1 Apache Kafka是一个分布式的流平台.这到底意味着什么? 我们认为,一个流平台具有三个关键能力: ① 发布和订阅消息.在这方面,它类似一个消息队列或企业消息系 ...
- Kafka设计解析(十四)Kafka producer介绍
转载自 huxihx,原文链接 Kafka producer介绍 Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本produce ...
- kafka基础介绍
kafka基础介绍 一.kafka介绍 1.1主要功能 根据官网的介绍,kafka是一个分布式流媒体的平台,它主要有三大功能: 1.11:It lets you publish and subscri ...
- 【转帖】Kafka入门介绍
Kafka入门介绍 https://www.cnblogs.com/swordfall/p/8251700.html 最近在看hdoop的hdfs 以及看了下kafka的底层存储,发现分布式的技术基本 ...
- kafka架构,消息存储和生成消费模型,Kafka与其他队列对比,零拷贝,Kafka基本介绍
kafka架构,消息存储和生成消费模型,Kafka与其他队列对比,零拷贝,Kafka基本介绍 一.初识kafka 1.1SparkStreaming+Kafka好处: 1.2Kafka的架构: 二.k ...
- [Kafka] - Kafka 安装介绍
Kafka是由LinkedIn公司开发的,之后贡献给Apache基金会,成为Apache的一个顶级项目,开发语言为Scala.提供了各种不同语言的API,具体参考Kafka的cwiki页面: Kafk ...
- kafka搜索介绍
kafka详解 https://blog.csdn.net/liubenlong007/article/details/55211196##1 1.2 Kafka诞生 Kafka由 linked- ...
- 第1节 kafka消息队列:1、kafka基本介绍以及与传统消息队列的对比
1. Kafka介绍 l Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开发的一个开源消息系统项目. l Kafka最初是由LinkedIn开发,并于20 ...
- 【Kafka】Kafka简单介绍
目录 基本介绍 概述 优点 主要应用场景 Kafka的架构 四大核心API 架构内部细节 基本介绍 概述 Kafka官网网站:http://kafka.apache.org/ Kafka是由Apach ...
- kafka综合介绍
设计目标 高吞吐率.即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输. 支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输 同 ...
随机推荐
- LeetCode 410——分割数组的最大值
1. 题目 2. 解答 此题目为 今日头条 2018 AI Camp 5 月 26 日在线笔试编程题第二道--最小分割分数. class Solution { public: // 若分割数组的最大值 ...
- [转载]深入理解Batch Normalization批标准化
文章转载自:http://www.cnblogs.com/guoyaohua/p/8724433.html Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和 ...
- matlab mex 小o -o 出错
https://github.com/kyamagu/mexopencv/issues/117 就是说2014a以后的版本mex -o 选项变成了 -output 蛋疼,这有什么好改的.找了好久才 ...
- Week7 Teamework from Z.XML-任务分配
任务分配 Z.XML任务初步分配新鲜出炉,请关注! 初步估计,我们的项目需要191小时.但是根据敏捷开发的方法,我们将在开发过程中根据情况迅速调整任务分配,以适应当时问题.
- 【Python】python中的__dict__,__getattr__,__setattr__
Python class 通过内置成员__dict__ 存储成员信息(字典) 首先用一个简单的例子看一下__dict__ 的用法 class A(): def __init__(self,ax,bx) ...
- Coursera: Internet History, Technology, and Security
课程网址:https://www.coursera.org/learn/internet-history 学习笔记: Week 1: History - Dawn of Early Computing ...
- Java——异常博客作业
本次任务地址 6. 为如下代码加上异常处理 6.1 改正代码,并增加如下功能.当找不到文件时,需提示用户找不到文件xxx,请重新输入文件名,然后尝试重新打开. 如果是其他异常则提示打开或读取文件失败! ...
- ubuntu16.04 装了一天的gitlab
1.安装gitlab baidu安装完了[后续再自己写安装过程] 2.遇到的问题 访问gitlab http://ip 可以进入页面也能操作但是console报404无法加载js和css,这样很不方便 ...
- [BJOI2006]狼抓兔子——最小割转对偶图最短路
其实这个题直接Dinic跑最小割可过. (小优化是: 无向图建网络流,一条边不用建成4条,可以正反容量都是边权即可.完全等价 ) [无效]网络流之转换对偶图 一个巧妙的事情是,如果建边合适的话,最小割 ...
- org.json与json-lib的区别(补充 FastJson)
org.json 是JSON国际组织官方推出的标准json解析方案,已经被 android sdk 纳入到标准内置类库,依赖项少,但直至API17版本SDK中,仅支持JSONObject与JSONAr ...