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. (8)socketserver并发

    (1)client客户端: import socket sk = socket.socket() sk.connect( ("127.0.0.1",9000)) while Tru ...

  2. 在docker中运行.netcore程序

    安装docker 获取core镜像 docker pull microsoft/dotnet 首先在https://hub.docker.com查找core官方镜像,相关参数设置https://hub ...

  3. jquary 选择器,dom操作知识点

    选择器: 1. 基本选择器 1. 标签选择器(元素选择器) * 语法: $("html标签名") 获得所有匹配标签名称的元素 2. id选择器 * 语法: $("#id的 ...

  4. The Last Week

    二轮省选前的最后一周了呢. 一路走到这里,真的很希望能继续走下去. 好好调整一下状态,争取能有机会买D吧(虽然现在似乎D也没什么用了 day1 多项式 多项式ln 多项式exp day2 数据结构 L ...

  5. sql判断日期是否为当前季度

    判断日期时候为当年: SELECT DateDiff(yy, '2018-01-02', GetDate()) 返回结果0为当年. 获取当前季度: SELECT DATEPART(QUARTER,GE ...

  6. 从零开始学习Java多线程(一)

    1. 什么是进程? 对其概念需要自行goole,简单理解就是:进程是计算机系统进行资源分配和调度的基本单位,是正在运行程序的实体:每一个进程都有它自己的内存空间和系统资源:进程是线程的容器.如:打开I ...

  7. c# 多线程简化

    编译器自动推断出ParameterizedThreadStart委托,因为Go方法接收一个单独的object参数,就像这样写: 1 2 Thread t = new Thread (new Param ...

  8. promise用法十道题

    JS是单线程语言,多数的网站不需要大量计算,程序耗时主要是在磁盘I/O和网络I/O上 ,虽然固态硬盘SSD读取很快,但是和CPU比起来却不在一个数量级上,而且网络上的一个数据包来回时间更慢,所以一些C ...

  9. WCF服务无法访问DateTime类型的解决方法

    在WCF服务中,如果entity类含有DateTime类型的字段,那么接口将会被执行两次,从而出现无法访问的情况.如下图所示: 原因是WCF中DateTime无法转换成序列化JSON字符串,DateT ...

  10. Python2.7.13下载安装全过程(Windows版)

    前提:    我下载的Python是windows版本的,演示过程是在win10 64位操作系统上安装的. 1.下载 进入官网https://www.python.org/,找到Dowdloads,根 ...