Kafka集群安装使用

本文介绍了Kafka作为高吞吐量分布式消息系统的特性,包括其持久化、高吞吐量、分区支持和与Hadoop的集成。详细阐述了Kafka集群的搭建过程,包括配置、启动和验证步骤,并提供了简单的Producer和Consumer的Java代码示例,帮助读者快速入门Kafka的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kafka介绍

Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

  • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

  • 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。

  • 支持通过kafka服务器和消费机集群来分区消息。

  • 支持Hadoop并行数据加载。

Kafka的目的是提供一个发布订阅解决方案,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。

kafka是用Scala编写,用scalac编译器把源文件编译成Java的class文件(即在JVM上运行的字节码),因此Scala是基于JVM的语言,所以使用Kafka需要机器上游JVM支持,本文使用jdk版本为jdk-7u75.
以3台为例,如果是一个Follower宕机,还有2台服务器提供访问,因为Zookeeper上的数据是有多个副本的,数据并不会丢失,如果是一个Leader宕机,Zookeeper会选举出新的Leader。为什么是奇数台,如果Zookeeper 集群是3台,允许宕机1台,如果是4台,同样是允许1台宕机,因为选举算法要求”超过半数“,所以多出的一台没有意义。

配置步骤

Kafka自带了zookeeper,但是一般集群都会有zk,因此使用集群已有的zookeeper.

  1. 下载kafka_2.11-0.10.0.0.tgz

  2. 配置文件 server.properties

############################# Server Basics #############################
# 唯一标识一个broker.
broker.id=1
############################# Socket Server Settings #############################
#绑定服务监听的地址和端口,要填写hostname -i 出来的地址,否则可能会绑定到127.0.0.1,producer可能会发不出消息
listeners=PLAINTEXT://172.23.8.144:9092
#broker对producers和consumers服务的地址和端口,如果没有配置,使用listeners的配置,本文没有配置该项
#advertised.listeners=PLAINTEXT://your.host.name:9092
# 处理网络请求的线程数
num.network.threads=3
# 处理磁盘I/O的线程数
num.io.threads=8
# socket server的发送buffer大小 (SO_SNDBUF) 
socket.send.buffer.bytes=102400
# socket server的接收buffer大小 (SO_RCVBUF)
socket.receive.buffer.bytes=102400
#一个请求的最大size,用来保护防止oom
socket.request.max.bytes=104857600
############################# Log Basics #####################
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值