kafka权威指南(一):安装kafka

《Kafka权威指南》如何让分布式系统设计化繁为简 全球每天通过Kafka处理的消息量已突破1.5万亿条,这个数字正以47%的年增速重塑数据基础设施的边界。在这个实时数据定义商业价值的时代,无论你是设计日均亿级消息的电商平台,还是构建毫秒级响应的金融交易系统,这本架构师枕边书都将赋予你定义数据流动规则的终极话语权。“在数据即决策的时代,Kafka是数字世界的中央神经系统,而这本书就是神经外科医生的手术指南。由Kafka创始团队核心成员撰写的《Kafka权威指南》,正是打开现代数据工程之门的密钥。:CDC技术捕获数据库变更的毫秒级同步。 阅读详情

一、安装zooleeper(linux,CentOS7)

1.去apache官网下载zookeeper压缩包

地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

切记不管下载什么版本,一定要下载带bin的压缩包,如图:

下载完成后,放到服务器中(目录自己指定),解压该文件

2.进行简单的配置

打开conf目录,如果没有zoo.cfg就新建一个,进行如下配置:(注意配置项6)

配置项4中的文件夹目录我们需要手动创建,例如:

mkdir -p /var/lib/zookeeper
#1.tickTime:Client-Server通信心跳时间
#Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,tickTime以毫秒为单位
tickTime=2000

#2.initLimit:Leader-Follower初始通信时限
#集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)
#initLimit=5

#3.syncLimit:Leader-Follower同步通信时限
#集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
#syncLimit=2

#4.dataDir:数据文件目录
#Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/var/lib/zookeeper

#5.clientPort:客户端连接端口
#客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181

#6.admin.serverPort:zookeeper 3.5.0版本以上指定此参数,不指定则默认为8080.
#建议指定,因为亲测8080容易被占用,导致启动失败。
admin.serverPort=12222

#7.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
#这个配置项的书写格式比较特殊,规则如下:
#server.N=YYY:A:B

#7.maxClientCnxns:对于一个客户端的连接数限制,默认是60,这在大部分时候是足够了。
#但实际使用中发现,在测试环境经常超过这个数,
#经过调查发现有的团队将几十个应用全部部署到一台机器上,以方便测试,于是这个数字就超过了。
#maxClientCnxns=

#8.autopurge.snapRetainCount、autopurge.purgeInterval
#客户端与zookeeper交互过程中产生的日志,zookeeper会将内存中的数据作为snapshot保存下来
#这些数据不会自动删除,这样磁盘中这样的数据就会越来越多。
#autopurge.purgeInterval就是设置多少小时清理一次
#autopurge.snapRetainCount是设置保留多少个snapshot,之前的则删除。
#autopurge.purgeInterval=
#autopurge.snapRetainCount=

3.启动zookeeper

到bin目录下执行:

sh zkServer.sh start

4.测试启动是否成功

看到   Starting zookeeper ... STARTED   不一定代表启动成功,可以使用telnet测试。

未安装telnet的解决方案

telnet localhost 2181

telnet连接上,通过 srvr来验证是否安装正确

未连接上,代表启动失败。

5.启动失败错误排查

具体报错原因千变万化,在此不一一列举,建议大家养成启动后查看日志的习惯。

到/logs目录下可以查勘zookeeper从启动开始所有的运行时日志。

6.Zookeeper集群

Zookeeper集群被称为群组(不建议超过七个节点,节点过多会降低整个群组的性能),Zookeeper使用的是一致性协议,所以建议每个群组里应该包含奇数个节点(3,5,7,9)。因为只有大多数节点(法定人数)处于可用状态,Zookeeper才可以处理外部请求

也就是说,如果你有一个包含 3 个节点的群组,那么它允许1个节点失效。如果群组包含 5 个节点,那么它允许 2 个节点失效。

群组需要有一些公共配置,上面列出了所有服务器的清单,并且每个服务器还要在数据目录中创建一个 myid 文件,用于指明自己的 ID。如果群组里服务器的机器名是 zoo1.example.com、zoo2.example.com、zoo3.example.com,那么配置文件可能是这样的,

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=20
syncLimit=5
server.1=zoo1.example.com:2888:3888
server.2=zoo2.example.com:2888:3888
server.3=zoo3.example.com:2888:3888

服务器地址遵循 server.X=hostname:peerPort:leaderPort 格式:

  • X:服务器的 ID,它必须是一个整数,不过不一定要从 0 开始,也不要求是连续的;
  • hostname:服务器的机器名或 IP 地址;
  • peerPort:用于节点间通信的 TCP 端口;
  • leaderPort:用于首领选举的 TCP 端口

除了公共的配置文件外,每个服务器都必须在 data Dir 目录中创建一个叫作 myid 的文件,文件里要包含服务器 ID,这个 ID 要与配置文件里配置的 ID 保持一致。完成这些步骤后,就可以启动服务器,让它们彼此间进行通信了。

二、安装kafka

1.下载kafka安装包(解压即可)

官网:

百度云(简):https://www.jianshu.com/p/0da47d19ad3a

2.验证安装是否正确

创建并验证主题:

/bin/kafka-topics.sh --create --zookeeper localhost:2181

往测试主题上发布消息:

/bin/kafka-console-producer.sh --broker-list

从测试主题上读取消息:

/bin/kafka-console-consumer.sh --zookeeper

三、broker配置

1.常规配置

  • broker.id:每个 broker 需要有一个标识符,使用 broker.id 表示,默认是0,可设置任意整数。这个值在整个集群中必须是唯一的。建议设置为与机器名具有相关性的整数。
  • port:默认情况下监听9092端口。(使用1024以下的端口,需要使用root权限启动kafka,不推荐)
  • zookeeper.connect:用于保存broker元数据的Zookeeper地址。localhost:2181 表示这个 Zookeeper 是运行在本地的 2181 端口上。该配置参数是用冒号分隔的一组 hostname:port/path 列表,每一部分的含义如下
    • hostname 是 Zookeeper 服务器的机器名或 IP 地址
    • port 是 Zookeeper 的客户端连接端口
    • /path 是可选的(不存在自动创建) Zookeeper 路径,作为 Kafka 集群的 chroot 环境。如果不指定,默认使用根路径
  • log.dirs(一组用逗号分隔的本地文件系统路径):kafka把消息保存在磁盘,存放日志片段的目录。
    • 如果指定了多个路径,那么 broker 会根据“最少使用”原则,把同一个分区的日志片段保存到同一个路径下。要注意broker 会往拥有最少数目分区的路径新增分区,而不是往拥有最小磁盘空间的路径新增分区。
  • num.recovery.threads.per.data.dir:对于如下 3 种情况,Kafka 会使用可配置的线程池来处理日志片段:
    •  服务器正常启动,用于打开每个分区的日志片段;
    •  服务器崩溃后重启,用于检查和截短每个分区的日志片段;
    •  服务器正常关闭,用于关闭日志片段。
  • auto.create.topics.enable:默认情况下,Kafka 会在如下几种情形下自动创建主题
    • 当一个生产者开始往主题写入消息时
    • 当一个消费者开始从主题读取消息时
    • 当任意一个客户端向主题发送元数据请求时
    • 显式地创建主题把 auto.create.topics.enable 设为 false

2.默认配置

  • num.partitions(默认为1):指定新创建的主题包含几个分区,默认启用。
  •  log.retention.ms(默认168 小时,也就是一周):根据此时间决定数据保存多久
  • log.retention.bytes():通过最多可以保留的消息字节数来判断消息是否过期
  • log.segment.bytes(默认是 1GB):当日志片段大小达到 log.segment.bytes 指定的上限时,当前日志片段就会被关闭,一个新的日志片段被打开。
  • message.max.bytes(默认是 1M):限制单个消息的大小,这个值对性能有显著的影响

3.硬件选择

  • 磁盘吞吐量
  • 容量
  • 内存
  • 网络
  • CPU

4.Kafka集群

  • 最大的好处是可以跨服务器进行负载均衡。
  • 再则就是可以使用复制功能来避免因单点故障造成的数据丢失。
  • 在维护 Kafka 或底层系统时,使用集群可以确保为客户端提供高可用性。

需要多少个broker

  1. 需要多少磁盘空间来保留数据,以及单个 broker 有多少空间可用 例如:10/2
  2. 考虑集群处理请求的能力

broker配置

  1. 所有broker都必须配置相同的zookeeper.connect
  2. 每个broker都必须设置唯一的broker.id

 

Kafka权威指南总结 生产者 代码块 ➊ 新建一个 Properties 对象。 ➋ 因为我们打算把键和值定义成字符串类型,所以使用内置的 StringSerializer。 ➌ 在这里我们创建了一个新的生产者对象,并为键和值设置了恰当的类型,然后把Properties 对象传给它。 private Properties kafkaProps = new Properties(); ➊ kafkaProps.put("bootstrap.servers", "broker1:9092,broker2:909 阅读详情

相关推荐

集成开发 Kafka 权威指南.. 完整版

集成开发 Kafka 权威指南.. 完整版 集成开发 Kafka 权威指南.. 完整版

Kafka 权威指南

这本书侧重于 Kafka 的理论知识,虽然书有点老,但是其中关于 Kafka 的基础知识的章节讲得确实不错,适合学习 Kafka 的新手以及 Kafka 熟手的参考书。第一章主要讲的是发布与订阅消息体统的历史和 Kafka 产生的背景,也讲解了 Kafka 中的基本概念(消息、生产者、消费者、主题),也讲了选择 Kafka 的原因。第九章讲了如何管理 Kafka ,包括创建删除主题、增加分区、显示 Kafka 的主题信息、消费者组的展示和删除,还有分区管理等。第七章讲了 Kafka Connect。

maplecsd的博客 1103

kafka中文文档

kafka中文文档,内容来自kafka官网,已翻译成中文。

kafka权威指南(阅读摘录)

在使用 Kafka 构建数据管道时,通常有两种使用场景:第一种,把 Kafka 作为数据管道的两个端点之一,例如,把 Kafka 里的数据移动到 S3 上,或者把 MongoDB 里的数据移动到 Kafka 里;第二种,把 Kafka 作为数据管道两个端点的中间媒介,例如,为了把 Twitter 的数据移动到 ElasticSearch 上,需要先把它们移动到 Kafka 里,再将它们从 Kafka 移动到 ElasticSearch 上。我们有必要为主题创建大量的分区,在负载增长时可以加入更多的消费者。

玉树临风,仙风道骨 1621

kafka-权威指南(完整版高清)

本书是关于Kafka的全面教程,主要内容包括:Kafka相对于其他消息队列系统的优点,主要是它如何完美匹配大数据平台开发;详解Kafka内部设计;用Kafka构建应用的最佳实践;理解在生产中部署Kafka的最佳方式;如何确保Kafka集群的安全。

【实战案例】IBM V3500存储控制器故障诊断与更换全流程解析

本文详细解析了IBM Storwize V3500存储控制器发生故障后的完整处理流程。通过还原真实故障现场,介绍了如何利用服务助手精准定位缓存模块损坏的根源,并逐步指导完成控制器备件准备、核心部件移植更换、系统上线同步及全面功能验证的全过程,为存储运维人员提供了一份实用的实战指南。

weixin_29269441的博客 546

kafka权威指南学习以及kafka生产配置

确认2181端口开启 二、如果是zk集群 一般选择3或者5个基数节点修改群组配置文件,增加my.id文件和配置项 其中initLimit 表⽰⽤于在从节点与主节点之间建⽴初始化连接的时间上限, syncLimit 表⽰允许从节点与主节点处于不同步状态的时间上限,这两个值都是 tickTime 的 倍数,所以 initLimit 是 20*2000ms,也就是 40s配置⾥还列出了群组中所有服务器的地 址。服务器地址遵循 server.X=hostname:peerPort:leaderPor

weixin_42435798的博客 2460

DAC8568控制器实战:如何用STM32实现多通道同步输出(附完整代码)

本文详细介绍了如何使用STM32微控制器驱动TI的DAC8568多通道DAC控制器,实现高精度的多通道同步模拟信号输出。内容涵盖硬件设计要点、SPI时序精准配置、驱动层命令构建,并重点解析了通过LDAC引脚实现同步更新的核心策略,提供了完整的代码框架和实战案例,帮助工程师快速解决多通道同步输出的工程难题。

weixin_29179311的博客 169

Kafka权威指南(第2版)读书笔记

一个应用程序会在很多情况下向Kafka写入消息:记录用户的活动(用于审计和分析)​、记录指标、记录日志、记录从智能家电收集到的信息、与其他应用程序进行异步通信、缓冲即将写入数据库的数据,等等。如果消息写入成功,就返回一个RecordMetaData对象,其中包含了主题和分区信息,以及消息在分区中的偏移量。不管是把Kafka作为消息队列、消息总线还是数据存储平台,总是需要一个可以往Kafka写入数据的生产者、一个可以从Kafka读取数据的消费者,或者一个兼具两种角色的应用程序。

一个有信仰的技术人 713

Windows如何使用Anaconda 3进行keras环境的配置

** Windows如何使用Anaconda 3进行keras环境的配置 搭建Keras环境* Anaconda3如何安装keras,主要包括下面三步: 1.安装mingw libpython 2.安装theano 3.安装keras 若你还没有按装anaconda,赶紧下载安装吧! 下载途径有两个 (1)Anaconda版本为Anaconda 4.4.0,对应的python版本为3.6,附上An...

Lance_liangliang的博客 1600

【智能体评测】BrowserUse:一款超越 Anthropic Computer Use 的开源智能体

本文将全面介绍 BrowserUse 的核心功能、配置与使用方法,以及通过多场景测试评估其性能。

surfirst的博客 4096

《kafka权威指南》阅读笔记

最近翻阅《kafka权威指南》,对于书中的某些片段印象深刻,因此特意摘抄了一些内容。

zbw237798856的博客 209

涨薪技术|Kubernetes(k8s)环境部署实战

这两者都是在/etc/docker/daemon.json里修改的,所以我们一起配置了就好了,首先执行下述命令编辑daemon.json:​​​​​​​。安装完成后,可以使用以下命令来查看dashboard访问的端口号​​​​​​​。网络插件CNI也是以容器的方式进行启动​​​​​​​。安装完成后可以检查是否拉取了对应的容器​​​​​​​。再使用以下命令进行安装:​​​​​​​。打开后输入以下内容:​​​​​​​。安装1.19.0版本​​​​​​​。修改IP地址:​​​​​​​。

m0_60889254的博客 1084

Kafka权威指南第二版资源下载:深入Apache Kafka的不二选择

Kafka权威指南第二版资源下载:深入Apache Kafka的不二选择 【下载地址】Kafka权威指南第二版资源下载 《Kafka权威指南第二版》资源下载页面为您提供了深入理解Apache Kafka的绝佳机会。这本权威指南详细解析了Kafka的核心概念、架构设计、高级功能及最佳实践,涵盖了消息队列、流处理、连接器等关...

gitblog_06716的博客 915

P450酶催化循环的Amber-Gromacs混合模拟实战:从血红素加氧到产物释放

本文详细介绍了针对P450酶完整催化循环的Amber-Gromacs混合模拟实战策略。通过Amber为关键氧合血红素中间体(CPDI)构建精确力场,再利用Gromacs的高效GPU加速进行长时间尺度动力学模拟,完整覆盖从底物结合到产物释放的催化过程,为研究酶催化机制提供了强大的计算工具。

weixin_29201859的博客 313

SCI一区论文投稿终极技巧:Expert Systems With Applications;Knowledge-Based Systems

投稿计算机1区论文(如KBS、ESWA)的核心技巧包括:1)关键词选择需平衡范围与相关性,避免过细或过泛;2)研究内容聚焦单一核心创新点,避免内容分散;3)必须设计消融实验量化创新点的贡献;4)公开实验代码和数据集,确保可验证性;5)合理使用AI工具仅辅助写作,核心内容需自主完成;6)实验数据必须真实可靠。特别强调1区期刊对创新性和实验严谨性的高要求,需避免常见拒稿原因如内容分散、缺乏验证等。这些策略可提高投稿成功率,但前提是研究本身具有实质性创新。

ZhangJiqun&191cm&85kg 1151

送5本《Kafka权威指南》第二版

文末送书科学家们每一次发生分歧都是因为掌握的数据不够充分。所以,我们可以先就获取哪一类数据达成一致,只要获取了数据,问题也就迎刃而解了。要么我是对的,要么你是对的,要么我们都是错的,然后继续。——Neil deGrasse Tyson每个应用程序都会生成数据,包括日志、指标、用户活动记录、响应消息等,这些点点滴滴都在暗示一些重要的东西。这就需要我们把数据从源头移动到可以对它们进行分析处理的地方,然...

a934079371的博客 1295

Fiori Elements 从入门到精通开发教程的文章目录

Fiori Elements 开发技术相对 SAP 其他历史悠久,发展成熟的开发技术来说,是一个新事物。正因如此,迄今为止国内深入讲解 Fiori Elements 应用的中文材料几乎没有。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4702

Kafka权威指南

第一章 初识Kafka kafka是一款发布订阅的消息系统,具体结构从大向下可以列举为: 1个Kafka集群种有N个broker,一个broker有N个主题分区 broker指的是一个独立的Kafka服务器 主题指的是消息的分类 为什么要选用Kafka 发布订阅的消息系统很多,选择Kafka的原因如下: 多个生产者 Kafka可以支持多个生产者,这是因为Kafka是以主题(TOPIC)来区分消息的,多个生产者可以向同一个主题发送消息,从而支持多个生产者。 多个消费者 一个主题可以被多个消费者消费,并且可以

hqq1256881740的博客 864

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【亲测免费】 Kafka 权威指南(中文,高清)下载仓库

Kafka 权威指南(中文,高清)下载仓库 【下载地址】Kafka权威指南中文高清下载仓库 Kafka 权威指南(中文,高清)下载仓库 项目地址: https://gitcode.com/open-source-toolkit/7...

gitblog_09810的博客 737

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

《Kafka权威指南》读书笔记

Kafka权威指南》第一、三、四、六章,是重点。可以多看看。

Cyms,BgXmSfXtsj !!!! Battle Each Moment !!!! 1424

02 Confluent_Kafka权威指南 第二章:安装kafka

CHAPTER 2 Installing Kafka kafka的安装配置 本章节描述了如何安装apache kafka的broker,以及如何设置apache zookeeper,zookeeper被用于存储broker的元数据。本章节还将介绍kafka的基本配置,以及broker运行的硬件标准。最后,我们将介绍多实例集群的安装方法,以及在生产环节中使用kafka时需要注意的一些问题。 First Things First 在安装和使用kafka之前,需要准备如下事项: Choosing an Opera

dhaibo1986的专栏 1174

【亲测免费】 Kafka权威指南第二版资源下载

Kafka权威指南第二版资源下载 【下载地址】Kafka权威指南第二版资源下载 《Kafka权威指南第二版》资源下载页面为您提供了深入理解Apache Kafka的绝佳机会。这本权威指南详细解析了Kafka的核心概念、架构设计、高级功能及最佳实践,涵盖了消息队列、流处理、连接器等关键内容,并分享了生产环境中的部署、监控和...

gitblog_06783的博客 491

《kafka权威指南》之深入Kafka

文章目录集群节点节点ID控制器复制处理请求 Kafka 如何进行复制 Kafka 如何处理来自生产者和消费者的请求 Kafka 的存储细节,比如文件格式和索引。 集群节点 节点ID broker启动的时候,它通过创建临时节点把自己的ID注册到ZooKeeper中,当有broker加入或退出集群时,这些节点就可以获得通知。 关闭broker时,节点也会消息,但是ID还继续存在,若再启用相同ID...

fly_miqiqi的博客 467

kafka知识 --kafka权威指南

1.2.1 消息和批次 kafka的数据单元被称为消息. 为了提高效率,消息被分批次写入kafka.批次就是一组消息,这些消息属于同一个主题和分区. 如果每一个消息都单独穿行于网络,会导致大量的网络开销,把消息分成批次传输可以减少网络开销. 1.2.3 主题和分区 Kafka的消息通过主题进行分类.主题好比数据库的表,或者文件系统里的文件夹.主题可以被分为若干个分区,一个分区就是一个提交日志.消息...

Cocktail_py的博客 1538

Kafka权威指南,初识 Kafka

初识 Kafka Kafka 是一款基于发布与订阅的消息系统。它一般被称为“分布式提交日志”或者“分布式流平台”。 Kafka 的数据单元被称为消息。为了提高效率,消息被分批次写入 Kafka。批次就是一组消息,这些消息属于同一个主题和分区。批次越大,单位时间内处理的消息就越多,单个消息的传输时间就越长。 Kafka 的消息通过主题进行分类。主题就好比数据库的表,或者文件系统的文件...

qq_39662660的博客 615
上一篇: 深入理解java虚拟机(二):Java内存区域与内存溢出异常
下一篇: linux CentOS 安装telnet
life is ftc
博客等级 码龄9年 19粉丝 111原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值