kafka快速入门

https://www.cnblogs.com/luotianshuai/p/5206662.html

 

Kafka简介

Kafka是一个由LinkedIn开发的分布式消息系统,它于2011年初开源,现在由著名的Apache基金会维护与开发。Kafka使用Scala实现,被用作LinkedIn的活动流和运营数据处理的管道,现在也被诸多互联网企业广泛地用作为数据流管道和消息系统。

Kafka是基于消息发布/订阅模式实现的消息系统,其主要设计目标如下:

  • 消息持久化:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
  • 高吞吐:在廉价的商用机器上也能支持单机每秒100K条以上的吞吐量
  • 分布式:支持消息分区以及分布式消费,并保证分区内的消息顺序
  • 跨平台:支持不同技术平台的客户端(如:Java、PHP、Python等)
  • 实时性:支持实时数据处理和离线数据处理
  • 伸缩性:支持水平扩展

Kafka中涉及的一些基本概念:

  • Broker:Kafka集群包含一个或多个服务器,这些服务器被称为Broker。
  • Topic:逻辑上同Rabbit的Queue队列相似,每条发布到Kafka集群的消息都必须有一个Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个Broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
  • Partition:Partition是物理概念上的分区,为了提供系统吞吐率,在物理上每个Topic会分成一个或多个Partition,每个Partition对应一个文件夹(存储对应分区的消息内容和索引文件)。
  • Producer:消息生产者,负责生产消息并发送到Kafka Broker。
  • Consumer:消息消费者,向Kafka Broker读取消息并处理的客户端。
  • Consumer Group:每个Consumer属于一个特定的组(可为每个Consumer指定属于一个组,若不指定则属于默认组),组可以用来实现一条消息被组内多个成员消费等功能。
环境安装

1.

zookeeper下载地址: http://zookeeper.apache.org/releases.html

在解压zookeeper的安装包之后,可以看到其目录结构如下:

 

1

2

4

5

6

7

8

9

10

11

 

 

zookeeper

+-bin

+-config

+-contrib

+-dist-maven

+-docs

lib

recipes

src

tmp

 

配置文件conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=F:\\storm-jq-start\\zk\\dataDir\\1  (日志地址,windows事例)
clientPort=2181  (zookeeper启动端口)

启动

windows:

启动   zkServer.cmd    (bin目录 )

linux:

启动 zkServer.sh start

使用jps命令查看,存在QuorumPeerMain进程,表示Zookeeper已经启动

停止服务 zkServer.sh stop

使用jps命令查看,QuorumPeerMain进程已不存在,表示Zookeeper已经关闭

接服务端成功,若连接不同的主机,可使用如下命令:./zkCli.sh -server ip:port

创建顺序节点 create -s /zk-test 123

创建临时节点  create -e /zk-temp 123

创建永久节点 create /zk-permanent 123

读取节点

ls path [watch]     ls /

get path [watch]     get /zk-permanent

ls2 path [watch]   ls2 /

更新节点

set path data [version]    set /zk-permanent 456 

删除节点

delete path [version]    delete /zk-permanent

 

 

2.

kafka下载地址为:http://kafka.apache.org/downloads.html

在解压Kafka的安装包之后,可以看到其目录结构如下:

 

1

2

3

4

5

6

7

 

kafka

+-bin

    +-windows

+-config

+-libs

+-logs

+-site-docs

Kafka的设计中依赖了ZooKeeper,所以我们可以在binconfig目录中除了看到Kafka相关的内容之外,还有ZooKeeper相关的内容。其中bin目录存放了Kafka和ZooKeeper的命令行工具,bin根目录下是适用于Linux/Unix的shell,而bin/windows下的则是适用于windows下的bat。我们可以根据实际的系统来设置环境变量,以方便后续的使用和操作。而在config目录中,则是用来存放了关于Kafka与ZooKeeper的配置信息。

配置文件 config/server.properties

broker.id=0( 每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况 )

port =9092 ( broker server服务端口 )

log.dirs=/tmp/kafka-logs/5 ( kafka数据的存放地址,多个地址的话用逗号分割 /data/kafka-logs-1,/data/kafka-logs-2 )

message.max.bytes =6525000 ( 表示消息体的最大大小,单位是字节 )

num.network.threads =4 (broker处理消息的最大线程数,一般情况下不需要去修改 )

num.io.threads =8 (broker处理磁盘IO的线程数,数值应该大于你的硬盘数 )

background.threads =4 (一些后台任务处理的线程数,例如过期消息文件的删除等,一般情况下不需要去做修改 )

queued.max.requests =500(等待IO线程处理的请求队列最大数,若是等待IO的请求超过这个数值,那么会停止接受外部消息,应该是一种自我保护机制。)

zookeeper.connect=localhost:2081

这里列举了一些常用的,更具体的 (http://www.cnblogs.com/liangyours/p/4971656.html)

 

启动

windows:

cd bin/windows目录    kafka-server-start.bat  ../../config/server.properties

linux:

启动kafka

bin/kafka-server-start.sh config/server.properties

停止kafka

bin/kafka-server-stop.sh

 

创建 一个 topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

查看topic

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

生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
This is a message
This is another message

消费者

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

 

 

 

 


 

 

 

转载于:https://my.oschina.net/u/3642896/blog/1519514

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值