Apache Kafka

消息中间件->流式数据处理平台

特点: 高可靠性(分布式、分区、复制和容错)、高吞吐量、持久化

消息模式:
1)队列式(或点对点):在点对点消息系统中,消息被保存在队列中,一个或者多个消费者可以消费队列中的消息,但是特定消息只能由最多一个消费者消费,一旦消费者读取队列中的消息,它就从队列中消失;

2)发布-订阅:在发布-订阅的消息系统中,消息被保存在主题中,与点对点的消息系统不同的是消费者可以订阅一个或者多个主题并使用该主题中的所有消息,多个消费者可以订阅同一个主题中的消息

kafka为这两种消费模型设置了统一的消费者抽象模型,消费者组,消费者使用一个消费者组名标记自己,Topic上的一条消息只能由消费者组中的一个成员消费者组消费,假设消费某一个Topic的消费者都属于同一个消费者组,这就是队列式消费模型,相反如果所有的消费者不在同一个消费者分组中即是分布-订阅的消息模型。Kafka虽然在服务端保证消息的有序性但是不保证消息并行消费下的全局有序性,因为消息是异步发送给各个消费者,消费者接受消息的先后顺序无法保证,如果只让一个消费者处理消息有违背并行处理的初衷也极大降低了性能,故kafka在兼顾性能与消息有序性的基础上做了折衷,kafka采用了分而治之的策略-分区,并且保证Topic分区中的消息只能由唯一一个消费者进行处理,这样在牺牲跨分区消息处理顺序的基础上,保证了Topic一个分区的处理顺序,RocketMQ保证全局有序和局部有序应该也是借鉴了Kafka的实现机制

kafka学习笔记整理01的更多相关文章

  1. 大数据 -- kafka学习笔记:知识点整理(部分转载)

    一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...

  2. Three入门学习笔记整理

    一.官方网站:https://threejs.org 二.关于Three.js 三.开始 四.实例 基本结构 结果 五.概念 坐标系 场景 相机 灯光 3D模型 六.简单动画 七.交互控制 结束 # ...

  3. kafka学习笔记(一)消息队列和kafka入门

    概述 学习和使用kafka不知不觉已经将近5年了,觉得应该总结整理一下之前的知识更好,所以决定写一系列kafka学习笔记,在总结的基础上希望自己的知识更上一层楼.写的不对的地方请大家不吝指正,感激万分 ...

  4. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  5. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. Deep Learning(深度学习)学习笔记整理系列之(七)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning(深度学习)学习笔记整理系列之(六)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

随机推荐

  1. mybatis多参数传递,延迟加载,缓存,注解开发

    1.Mybatis的多参数传递方式 需求:更具id 和 名字查询用户: select * from user where id = ? and name = ?: 1):QueryVo 或者 User ...

  2. 【Java】【13】两个double类型比较大小

    /** * @return >0,第一位数大 */ public static int compare(double double1, double double2) { BigDecimal ...

  3. python django连接错误

    提示: connection.alias,django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0 ...

  4. sql语句学习及索引学习,未完待续,补充增删改查

    1,查询出last_name 为 'Chen' 的 manager 的信息.  select * fromwhere employee_id = ( selectfrom employees wher ...

  5. nodeJs安装Vue-cli

    1,安装nodejs安装包,注意安装的路径 2,安装完成node,node有自带的npm,可以直接在cmd中,找到nodeJs安装的路径下,进行命令行全局安装vue-cli.(npm install ...

  6. AJAX如何实现和后端的交互(网页如何与 web 服务器进行通信)

    在这里我们将会用一个姓名提示框案例来简单说明: 当用户在输入框中键入字符时,网页与 web 服务器进行通信,服务器返回提示信息,传给网页: 先看一下界面: 在html页面中: 思路:就是当用户在上面的 ...

  7. Python3+Appium安装使用教程

    一.安装 我们知道selenium是桌面浏览器自动化操作工具(Web Browser Automation) appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mobi ...

  8. VC调用外部程序

    #include <windows.h> int main() { STARTUPINFO mStatusInfo; memset(&mStatusInfo, 0, sizeof( ...

  9. css3 翻牌动画

    最近做了一个特效,css是从网上找的,地址是这个: CSS3 animate flip下的纸牌翻转效果实例页面 把其中核心的css代码扒出来如下: /* The properties in this ...

  10. MSDN订户下载权限被屏蔽的办法

    使用Chrome浏览器,在加载完成页面之后,按F12,在控制台选项卡当中输入下面代码,即可解除屏蔽. $("#SubMigratedMessageArea").remove(); ...