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消息队列-笔记相关推荐

  1. SpringBoot集成Kafka消息队列

    1.说明 Spring可以方便的集成使用 Kafka消息队列 , 只需要引入依赖包spring-kafka, 注意版本兼容问题, 本文详细介绍SpringBoot集成Kafka的方法, 以及生产者和消 ...

  2. 【无废话】SpringBoot集成Kafka消息队列

    0.前言 本人整理收藏了22年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,我认为对面试与学习来说是非常有用的,想要资料的话请点白嫖这份答案←戳我** 1.说明 Spring可以 ...

  3. kafka消息队列的概念理解

    kafka在大数据.分布式架构中都很流行.kafka可以进行流式计算,也可以做为日志系统,还可以用于消息队列. kafka作为消息队列的优点: 分布式的系统 高吞吐量.即使存储了许多TB的消息,它也保 ...

  4. 使用kafka消息队列中间件实现跨进程,跨服务器的高并发消息通讯

    作者 | 陈屹       责编 | 欧阳姝黎 近来工作上接收到一项任务,实现c++后台服务器程序,要求它能承载千万级别的DAU读写请求.目前实现千万级高并发海量数据请求的服务器设计在"套路 ...

  5. 19 kafka消息队列

    文章目录 19 kafka消息队列 一.kafka介绍 1.消息队列基本介绍 2.常用的消息队列介绍 3.消息队列的应用场景 4.消息队列的两种模式 5.kafka的基本介绍 6.kafka的架构介绍 ...

  6. kafka 消息队列

    kafka 消息队列 kafka 架构原理 大数据时代来临,如果你还不知道Kafka那就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP ...

  7. Java+Kafka消息队列

    本文主要针对,Java端对Kafka消息队列的生产和消费.Kafka的安装部署,请看查看相关文章. 笔者最近所用的是Spring mvc,监听文件路径,然后将读取到的文件内容发送到消息队列中.由另外系 ...

  8. kafka消息队列应用总结

    kafka官网: Apache Kafka 公司使用阿里云提供的kafka消息队列服务,分别为测试环境与生产环境,部署了多个集群. 使用场景:应用对外提供API接口调用,同时支持kafka增量消息推送 ...

  9. Flink使用KafkaSource从Kafka消息队列中读取数据

    Flink使用KafkaSource从Kafka消息队列中读取数据 使用KafkaSource从Kafka消息队列中读取数据 1.KafkaSource创建的DataStream是一个并行的DataS ...

最新文章

  1. 使用 jQuery 简化 Ajax 开发
  2. IT人的“钱”景以及收入的两道坎
  3. 在Aptana下安装Zen coding
  4. Word组件 Spire.Doc for .NET V6.0.3发布 | 修复多个重大bug
  5. 输入输出 scanf和*修饰符
  6. xfce中的window manager
  7. 调整标志位方法oracle,面试题(二)(示例代码)
  8. 为什么说机器学习不是人工智能?
  9. 万兆网卡实际吞吐量_案例探索 | 千兆/万兆网卡每秒转发包数处理能力上限到底有多大?...
  10. php 字符 index,php函数之字符串篇String
  11. python vector 初始化_一文带你走进Python中的数据类
  12. 【C语言】07-基本语句和运算
  13. 固态硬盘受损或数据删除,怎么办?详解各种恢复SSD数据方法
  14. Cax 渲染的精致响应式饼图
  15. 各代iphone尺寸_iphone屏幕尺寸比例是多少,iphone各代屏幕尺寸大小介绍
  16. 作品交流:锁相环环路滤波器系数、NCO增益单位、鉴相器输出之间的关系
  17. 一个优秀程序员可抵五个普通程序员!
  18. php编写六十甲子纳音表_六十甲子顺序表
  19. 更新包与已安装应用的签名不一致
  20. MATLAB新手简明使用教程(七)——使用matlab建立多项式以及求导,商求导乘积求导等——新手来看,保证看懂。

热门文章

  1. 使用着色器在WebGL3D场景中呈现行星表面地形
  2. 【Unity】Failed to open source file UnityCG.cginc
  3. 随着无人机袭击事件的增多,采用多层次方法是应对新威胁的关键
  4. CSDN 浏览器助手初体验-chrome版
  5. Python 常见问题串讲
  6. C-L学习打卡(7.6)
  7. 综合实践空调温度控制c语言,空调温度控制系统毕业论文.doc
  8. win10配置 异地连接 遇到809错误提示
  9. 利用wordcloud库生成词云(Python)
  10. Vue3 + Ant Design Vue Modal 对话框可拖拽指令