kafka消费模式

1.点对点模式:消费者主动拉取消息,消费之后删除数据。

2.发布/订阅模式:如果生产者推给消费者,可能会有些消费者消费比较慢,直接爆炸、或者有些消费者消费很快,资源浪费;一般是消费者主动拉取(但是这样要不停的去询问kafka是否有新消息)。

Kafka基本架构

1.生产者:生产消息给kafka集群。

2.kafka集群:消息队列,暂存消息。

​   borker可以任务是不同的服务器;

​   Topic是指主题,每个主题存不同类型的消息;

​   partition是指分区,分区的作用在于,负载均衡,提高并发率(竖看是分区);

​   leader是相对于分区而言的,并不是相对于broker,而follower是在其中的leader宕机时会被提升为leader,作为副本(leader与follower一定不在一台服务器);

3.消费者:拉取kafka中的消息,消费,存储数据等。

​   消费者组:一个分区同时只能被一个消费者组的一个消费者消费

4.zookper:帮助kafka集群存储一些信息,纪录消费者消费到了哪里(0.9版本之前存在zk中,0.9版本之后存又存在了kafka的一个系统的Topic中,之所以改回去,是因为消费者既要维护与kafka的链接,又要维护与ZK的链接比较浪费资源,另外ZK本身只是各个框架整合的润滑剂,让它高并发并不好)。

kafka的配置文件

1.server.properties

​   broker.id:这是borker的全局唯一ID,不可重复,写整数;

​   delete.topic.enable:默认是false,一般会改为true,意思是是否允许真的删除topic;

​   log.dirs:kafka运行日志存放的地址(其实可以认为是数据暂存的地方);

​   log.retention.hours:这是kafka存放运行时日志的最长时间;

​   zookeeper.connect:配置连接zookper的地址

2.在bin目录下有一些常用的命令

  kafka-topics.sh --list --zookeeper:端口号 列出所有的topic

  kafka-topics.sh --create --zookeeper :端口号 --partitions 指定分区数 --replication-factor 指定副本数 创建一个topic

  kafka-topics.sh --delete --zookeeper:端口号 --topic 主题名称 删除指定主题(此时要注意配置文件为true时才真正意义的删除)

  副本数,不能大于borker的数量

  kafka-console-producer.sh --broker-list localhost:9092 --topic events localhost:9092是kafka启动的端口,--topic events是指定发送到某个topic

  kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic events --from-beginning --topic events是指订阅某一个topic的消息。 --from-begining是指从这个topic的第一条消息开始消费

kafk学习笔记(一)的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. Tensorflow2(二)tf.data输入模块

    代码和其他资料在 github 一.tf.data模块 数据分割 import tensorflow as tf dataset = tf.data.Dataset.from_tensor_slice ...

  2. Nginx反向代理的使用

    一.Nginx的基本命令 nginx:启动 nginx nginx -t :测试配置文件是否有语法错误 nginx -s reopen:重启Nginx nginx -s reload:重新加载Ngin ...

  3. PyCharm 中文教程 01:运行 Python 的四种方式

    <PyCharm 中文指南>在线阅读: http://pycharm.iswbm.com/ Github 项目主页: https://github.com/iswbm/pych... 1. ...

  4. [BUUOJ记录] [ACTF2020 新生赛]Include

    本题主要考查了利用php://filter伪协议进行文件包含 进入题目根据Tip进入正题,可以看到URL中存在文件包含(题目名也很直接) 首先考虑 "php://input"伪协议 ...

  5. stack 数据结构

    栈定义 栈:后进先出(永远从栈顶取元素)LIFO last-in-first-out   栈实现 class Stack { constructor() { this.items = [] this. ...

  6. 18 vue 动态路由传参

    params形式 http://192.168.1.100:8080/#/infoDetailed/231 //定义路由{ path: "/infoDetailed/:newsId" ...

  7. 04async await

    async async 函数返回值是一个promise对象,promise对象的状态由async函数的返回值决定   //函数的三种定义 async function hello() { return ...

  8. 跟着兄弟连系统学习Linux-【day02】

    day02-20200528 p6.vmvare安装与使用         官网下载安装包,个人学习的时候要求不高,所以不用安装最新版本,用不到那么多的功能,保证稳定版本就好了,然后傻瓜式安装.注意安 ...

  9. SpringBoot简单(登录/显示/登出)工程下载 附带打包成ROOT.war文件并发布到tomcat里

    下载地址:https://files.cnblogs.com/files/xiandedanteng/SessionShare20191226-1.zip 之前的工程仅能在Eclispe里跑起来,要把 ...

  10. HTTP走私

    干货 https://paper.seebug.org/1048/