博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kafka初装学习
阅读量:6306 次
发布时间:2019-06-22

本文共 2157 字,大约阅读时间需要 7 分钟。

安装kafka之前需要先安装zookeeper集群,虽然卡夫卡有自带的zk集群,但是建议还是使用单独的zk集群

下面是搭建kafka时候整理的一些学习笔记

1.卡夫卡角色

  消费者Consumer 消息队列中请求消息的客户端
  生产者Producer 想broker发布消息的客户端
  AMQP服务器端broker 接收生产者发布的消息,并路由给服务器中的队列
对于卡夫卡来说,一个broker为一个卡夫卡实例
主题概念(Topic):通常一个业务一个主题,一种类别  ?:卡夫卡集群中是否共享主题
分区概念(Partition):一个Topic的消息数据按照多个分区组织,Partition是卡夫卡消息队列组织中最小的单位
   ,一个分区可以看做事一个FIFO队列
卡夫卡会在每一台broker中备份Topic中的Partition
kafka虚拟机下载命令
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.1.0/kafka_2.10-0.10.1.0.tgz
配置文件:
server.properties
broker的基本的配置
broker.id  本机的broker在集群中的编号
port 当前的broker对外提供的tcp端口
host.name 当前broker服务绑定的ip地址,如果不配置,默认为localhost,dns域名解析有失败率,会导致文件句柄累计,
 导致linux系统崩溃
num.network.threads   broker进行网络线程处理的线程数
num.io.threads    broker进行IO处理的线程数,IO线程数要大于log.dirs的数量
socket.send.buffer.bytes  kafka发送消息缓冲区大小
socket.receive.buffer.bytes  kafka接收消息的缓冲区大小,kafka缓冲区用于接收消息,当到达一定数量时序列化到磁盘
socket.request.max.bytes  像kafka发送消息的最大数,数量不能超过java堆栈大小
log.dirs   队列中消息持久化的地方,配置多个用逗号分隔,当配置多个时,持久化时会查看哪个目录消息数比较少
num.partitions  一个topic默认分区的个数
zookeeper.connect zookeeper集群的ip和端口 ,用逗号分隔
zookeeper.connection.timeout.ms 卡夫卡集群连接zookeeper集群的超时时间
log的刷新策略一般使用默认的

log的注入策略
log.retention.hours 发送到卡夫卡的消息的失效时间 默认的是168个小时
message.max.bytes  每条消息能容纳的最大值 默认是1 注意如果你增大这个尺寸,你也必须增大你consumer的fetch 尺寸,这样consumer才能fetch到这些最大尺寸的消息。
default.replication.factor 每个topic中的备份数量,默认是1个副本,一般改为两个副本
replica.fetch.max.bytes topic可复制的消息的最大值,一般和每条消息能容纳的最大值相对应
log.segment.bytes  消息序列化到文件,文件的最大大小

log.retention.check.interval.ms 每个多长时间检查当前消息持久化目录是否存在,和消息持久化是否失效,单位是秒
log.cleaner.enable=false 是否启用log压缩  
其他选项
flush.messages 此项配置指定时间间隔:强制进行fsync持久化日志。例如,如果这个选项设置为1,那么每条消息之后都需要进行fsync,如果设置为5,则每5条消息就需要进行一次fsync。一般来说,建议你不要设置这个值。此参数的设置,需要在"数据可靠性"与"性能"之间做必要的权衡.如果此值过大,将会导致每次"fsync"的时间较长(IO阻塞),如果此值过小,将会导致"fsync"的次数较多,这也意味着整体的client请求有一定的延迟.物理server故障,将会导致没有fsync的消息丢失.
jbs 查看卡夫卡进程 ,jps是查看当前所有java进程Id的命令
后台启动kafka :./kafka-server-start.sh -daemon ../config/server.properties
创建topic命令                (zk地址)                  (topic名称)   (分区数)      (备份数)                     (消息的最大值)      (每条都需要持久化)
bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 1 --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1

其余更多kafka配置

http://www.cnblogs.com/rilley/p/5391268.html

你可能感兴趣的文章
记一次公司仓库数据库服务器死锁过程
查看>>
Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
查看>>
【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
查看>>
轨磁条简介
查看>>
(算法)交错的字符串
查看>>
hdu 5471(状压DP or 容斥)
查看>>
oracle.jdbc.driver.OracleDriver和oracle.jdbc.OracleDriver这两个驱动的区别
查看>>
NSQ部署
查看>>
git常用命令记录
查看>>
IBM发布新一代云计算工具包MobileFirst Foundation
查看>>
唯品会HDFS性能挑战和优化实践
查看>>
大规模学习该如何权衡得失?解读NeurIPS 2018时间检验奖获奖论文
查看>>
大厂前端高频面试问题与答案精选
查看>>
我们用5分钟写了一个跨多端项目
查看>>
Visual Studio 15.4发布,新增多平台支持
查看>>
有赞透明多级缓存解决方案(TMC)设计思路
查看>>
如何设计高扩展的在线网页制作平台
查看>>
Git 2.5增加了工作树、改进了三角工作流、性能等诸多方面
查看>>
Swift 5将强制执行内存独占访问
查看>>
中台之上(二):为什么业务架构存在20多年,技术人员还觉得它有点虚?
查看>>