kafka消息队列-笔记
1 什么是消息
在应用系统之间,传递的数据,叫做消息;
2 常见消息队列
- 标准的消息队列实现:
主要基于pub/sub publish 、subscribe发布与订阅模型
RabbitMQ:rabbit message queue
ActiveMQ:支持消息队列当中事务处理
RocketMQ:阿里开源的消息队列rocket
- 非标准的消息队列的实现
消息队列模型:主要是基于push、poll 推送与拉取
kafka不是标准的消息队列的实现
kafka:吞吐量非常高,而且消息处理速度非常快
3 消息队列的应用场景
应用解耦:应用系统之间需要解耦合比较好
异步并行处理
限流削峰
消息驱动的系统:如12306
4 消息系统的两种模式
点对点:两个人之间互相通信,都是点对点这种模型
发布与订阅:群聊
5 关于kafka
使用scala语言编写,kafka是一个分布式、分区的,多副本的,多订阅者的消息队列系统,
分布式是由多个节点组成,一个节点就是一个服务器在kafka当中节点叫做broker,一个节点就是一个broker,一个broker就是一个服务器,磁盘顺序读写
5.1 kafka应用场景:
流式处理:实时处理,数据从出现到产生,在一秒钟以内能够处理完成
流式计算:程序一旦启动,就会一直运行下去,一旦有数据,就能够马上被处理掉
生产者生产数据到kafka里面去,然后通过一些实时处理的框架例如storm或sparkstreaming或者flink等等实时处理的框架去处理kafka里面的数据
5.2 kafka的基本架构
- 生产者:producer主要负责生产数据到topic里面去
- topic:虚拟的概念,某一类消息的主题,某一类消息都是存放在某一个topic当中
- 一个topic有多个partition:一个partition里面有多个segment段,每个segment默认1GB
- 一个segment:一个.index文件 + 一个.log文件
- .log:存放用户真实的产生的数据
- .index:存放的是.log文件的索引数据
- 消费者:consumer,主要就是消费topic里面的数据
- consumer消费到哪一条数据需要进行记录:offset来进行记录,数据的偏移量,每条数据都有唯一的
kafka当中数据消费的时候,消费者都需要指定属于哪一个消费组。任意时刻,一个分区里面的数据,只能被一个消费组里面的一个线程进行消费,如果调大分区的个数,可以增加分区数据的并行消费的粒度
partition的个数与线程的个数:
partition个数=线程的个数,刚刚好,一个线程消费一个分区;
partition个数>线程的个数,有线程需要去消费多个分区里面的数据
partition<线程的个数,有线程闲置
5.3 kafka与zookeeper的关系
kafka需要依赖zk保存一些节点信息,kafka紧耦合zookeeper
5.4 kafka当中的数据消费出现延迟
加大消费者线程数量,加大分区的个数
5.5 kafka当中副本的策略
使用isr这种策略来维护一个副本列表
is synchronize replication:同步完成的副本列表
主分区:可以有多个副本,为了最大程度的同步完成数据,使用多个副本,每个副本都启动线程去复制主分区的数据,尽量保证副本当中的数据与主分区当中的数据一致
如果副本分区当中的数据与主分区当中的数据差别太大,将副本分区移除ISR列表;
如果副本分区的心跳时间比较久远,也会将副本分区移除ISR列表。
kafka消息队列-笔记相关推荐
- SpringBoot集成Kafka消息队列
1.说明 Spring可以方便的集成使用 Kafka消息队列 , 只需要引入依赖包spring-kafka, 注意版本兼容问题, 本文详细介绍SpringBoot集成Kafka的方法, 以及生产者和消 ...
- 【无废话】SpringBoot集成Kafka消息队列
0.前言 本人整理收藏了22年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,我认为对面试与学习来说是非常有用的,想要资料的话请点白嫖这份答案←戳我** 1.说明 Spring可以 ...
- kafka消息队列的概念理解
kafka在大数据.分布式架构中都很流行.kafka可以进行流式计算,也可以做为日志系统,还可以用于消息队列. kafka作为消息队列的优点: 分布式的系统 高吞吐量.即使存储了许多TB的消息,它也保 ...
- 使用kafka消息队列中间件实现跨进程,跨服务器的高并发消息通讯
作者 | 陈屹 责编 | 欧阳姝黎 近来工作上接收到一项任务,实现c++后台服务器程序,要求它能承载千万级别的DAU读写请求.目前实现千万级高并发海量数据请求的服务器设计在"套路 ...
- 19 kafka消息队列
文章目录 19 kafka消息队列 一.kafka介绍 1.消息队列基本介绍 2.常用的消息队列介绍 3.消息队列的应用场景 4.消息队列的两种模式 5.kafka的基本介绍 6.kafka的架构介绍 ...
- kafka 消息队列
kafka 消息队列 kafka 架构原理 大数据时代来临,如果你还不知道Kafka那就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP ...
- Java+Kafka消息队列
本文主要针对,Java端对Kafka消息队列的生产和消费.Kafka的安装部署,请看查看相关文章. 笔者最近所用的是Spring mvc,监听文件路径,然后将读取到的文件内容发送到消息队列中.由另外系 ...
- kafka消息队列应用总结
kafka官网: Apache Kafka 公司使用阿里云提供的kafka消息队列服务,分别为测试环境与生产环境,部署了多个集群. 使用场景:应用对外提供API接口调用,同时支持kafka增量消息推送 ...
- Flink使用KafkaSource从Kafka消息队列中读取数据
Flink使用KafkaSource从Kafka消息队列中读取数据 使用KafkaSource从Kafka消息队列中读取数据 1.KafkaSource创建的DataStream是一个并行的DataS ...
最新文章
- html从入门到精通胡菘,网页设计与制作32课时完整教学大纲
- leetcode-最大子序和(动态规划讲解)
- Bootloader传参数到Kernel
- jieba结巴分词--关键词抽取_结巴中文分词原理分析2
- java web后台_java web 后台那些事
- OpenGL与gl glu glut freeglut glew glfw封装库关系(十五)
- 编程之美 第1章 游戏之乐——游戏中碰到的题目(九)
- 拓端tecdat|R语言具有Student-t分布改进的GARCH(1,1)模型的贝叶斯估计
- processing一个作品_当你触摸到一束光| 交互灯光装置课程学员作品回顾
- 功能测试基础之业务流程测试
- linux添加mx记录,在C linux中查询MX记录
- Markdown格式表情包大全最新整理分享
- STM32内存分布学习
- 微信小程序校验网络连接是否正常,无网络时给出提示
- 等号(=),双等号(==)还有三等号(===)的使用与区别
- 约束条件下的多元回归
- python数据分析--金融数据处理
- 抖音最火的文案_抖音经典文案大全
- Mat::ones() 和 Mat::zeros()
- 【职场必备知识】一文搞懂五险一金(打工人必备)