Apache Kafka入门
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的应用以及发展,“Kafka剖析”专栏将会从架构设计、实现、应用场景、性能等方面深度解析Kafka。
背景介绍
Kafka创建背景
Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。
活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。运营数据指的是服务器的性能数据(CPU、IO使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。
Kafka简介
Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:
以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。
支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。
同时支持离线数据处理和实时数据处理。
Scale out:支持在线水平扩展。
下载kafka安装包。
解压缩安装包。
tar -xzvf kafka_2.11-1.0.0.tgz
进入安装目录。
cd kafka_2.11-1.0.0/
启动zookeeper服务:bin/zookeeper-server-start.sh config/zookeeper.properties
Kafka使用ZooKeeper保存元数据,所以你必须首先启动一个ZooKeeper服务,假如没有的话,Kafka提供了一个简便的安装包启动一个单节点的ZooKeeper实例。
启动kafka服务:
bin/kafka-server-start.sh config/server.properties
zookeeper服务和kafka启动成功,输出如下日志。
创建有一个副本一个分区test主题。
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看创建的主题。
bin/kafka-topics.sh --list --zookeeper localhost:2181
发送消息到主题test。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
从主题上消费消息。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
单节点kafka安装完毕。
版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/answer/78942.html