Kafka基本——初见

Kafka基本逻辑:

​ 1、类似于rabbitmq之类的消息队列,消息的传递通过topic(主题)进行,Producer(生产者)通过发布topic进行消息的发布,server(消费者)通过与cluster之间建立长连接的方式,消费topic主题。
​ 2、Topic可细化为多个Partition(分区),一个分区只属于一个主题,在物理层面上的具体表现为多个可追加的Log(日志)文件,对于大文件Kafka会将Log进行切分。
​ 3、Log写入为顺序写入,仅有最后一个LogSegment(日志分片)写入数据,不同LogSegment 存在一定的offset(偏移量)值唯一,用于区分。
​ 4、Kafka仅维护分区有序,主题之间可跨broker
​ 5、多副本容灾:
​ 即通过提升副本数量进行容灾,将同一个分区的多个副本会被均匀分配到集群中的不同 broker 上(副本之间同步消息存在延时,数据并非完全一致)。
​ 副本之间为“一主多从”的关系,即存在一个leader与多个followerfollower仅负责消息的备份,当’leader’出现故障时,自动在多个follower中进行选举选出新的leader对外正常提供服务。

Kafka配置文件详解

配置项解释类型默认值
auto.create.topics.enabl启用topic的自动创建booleantrue
auto.leader.rebalance.enabl是否允许leader平衡。后台线程会定期检查并触发leader平衡。booleantrue
background.threads用于处理各种后台任务的线程数量int10
broker.id用于服务的broker id(唯一值)int-1
compression.type为特点的topic指定一个最终压缩类型。此配置接受的标准压缩编码方式有(‘gzip’, ‘snappy’, ‘lz4’)。此外还有’uncompressed’相当于不压缩;'producer’意味着压缩类型由’producer’决定。stringproducer
delete.topic.enable是否允许删除topic。如果关闭此配置,通过管理工具删除topic将不再生效。booleantrue
listeners监听器列表 。合法监听器列表的示例:PLAINTEXT:// myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION:// localhost:9093stringnull
log.dir保存日志数据的目录string/tmp/kafka-logs
log.dirs保存日志数据的目录,如果未设置将使用log.dir的配置。通常用于多日志存储位置的设置stringnull
log.flush.interval.messages在将消息刷新到磁盘之前,在日志分区上累积的消息数量。即触碰到阈值时,强制将消息刷入磁盘long9223372036854775807
log.flush.interval.ms / log.flush.scheduler.interval.ms每间隔多长时间,强制将内存中的topic消息刷入磁盘(以毫秒为单位)。如果未设置,则使用log.flush.scheduler.interval.ms中的值。longnull
log.retention.bytes日志删除的大小阈值(单位:bytes)long-1(永不删除)
log.retention.hours / log.retention.minutes / log.retention.ms日志删除的时间阈值(小时/分钟/毫秒为单位)hours最大int168
log.roll.hours到达阈值时间,强制新建新的segmentint168
log.segment.bytes单个segment日志文件阈值大小(单位:bytes)int1073741824
log.segment.delete.delay.ms日志文件真正从文件系统中删除前的保留时间(log.retention.hours等只是注明delete,文件并没有被删除)long60000
num.io.threads服务器用于处理请求建立的线程数,硬盘IO配置线程数量为cpu核数2倍int8
num.network.threads服务器用于从接收网络请求并发送网络响应的线程数,网络IO配置线程数量为cpu核数加1int3
queued.max.requests网络线程最大请求数可配合num.io.tureads进行修改int500
replica.lag.time.max.msleader与follower之间的心跳时间,超时或follower没有消费offset,则leader自动将该follower剔除节点long10000
zookeeper.connection.timeout.ms与ZK server建立连接的超时时间,没有配置就使用zookeeper.session.timeout.msintnull
zookeeper.session.timeout.msZooKeeper的session的超时时间,超过这个时间就认为是无效的消费者int6000
connections.max.idle.ms连接空闲超时:服务器socket处理线程空闲超时关闭时间long600000
controlled.shutdown.max.retries当发生失败故障时,由于各种原因导致关闭服务的次数int3
controlled.shutdown.retry.backoff.ms重试等待时间,单位:毫秒long5000

Kafka简单部署

1、JDK环境安装

2、配置安装zookeeper

(1)解压tar包

直接用就行

(2)修改配置文件——单节点简版

# ZooKeeper服务器心跳时间,单位为ms
tickTime=2000
# 允许follower连接并同步到leader的初始化连接时间,以tickTime的倍数来表示
initLimit=10
# leader与follower心跳检测最大容忍时间,响应超过syncLimit*tickTime,leader认为
# follower“死掉”,从服务器列表中删除follower
syncLimit=5
# 数据目录
dataDir=/tmp/zookeeper/data
# 日志目录
dataLogDir=/tmp/zookeeper/log
# ZooKeeper对外服务端口
clientPort=2181

创建myid文件,作为zookeeper节点的唯一标识,地点位于配置文件中datadir指定的路径

(3)启动

[root@node1 conf]# zkServer.sh star

3、安装kafka broker

(1)解压tar包

直接用就行

(2)修改配置文件

conf]# zkServer.sh star


3、安装`kafka broker`

(1)解压tar包

直接用就行

(2)修改配置文件

(3)启动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值