kafka 安装到使用
Kafka 的特点:
以时间复杂度为 O (1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。
高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。【据了解,Kafka 每秒可以生产约 25 万消息(50 MB),每秒处理 55 万消息(110 MB)】
支持 Kafka Server 间的消息分区,同时保证每个 Partition 内的消息顺序传输。
分布式系统,易于向外扩展。所有的 producer、broker 和 consumer 都会有多个,均为分布式的。无需停机即可扩展机器。
消息被处理的状态是在 consumer 端维护,而不是由 server 端维护。当失败时能自动平衡。
同时支持离线数据处理和实时数据处理。
Kafka 的整体架构非常简单,producer、broker(kafka)和 consumer 都可以有多个。Producer,consumer 实现 Kafka 注册的接口,数据从 producer 发送到 broker,broker 承担一个中间缓存和分发的作用。broker 分发注册到系统中的 consumer。broker 的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。客户端和服务器端的通信,是基于简单,高性能,且与编程语言无关的 TCP 协议。
Kafka 基本概念:
Topic:特指 Kafka 处理的消息源(feeds of messages)的不同分类。
Partition:Topic 物理上的分组,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。partition 中的每条消息都会被分配一个有序的 id(offset)。
Message:消息,是通信的基本单位,每个 producer 可以向一个 topic(主题)发布一些消息。
Producers:消息和数据生产者,向 Kafka 的一个 topic 发布消息的过程叫做 producers。
Consumers:消息和数据消费者,订阅 topics 并处理其发布的消息的过程叫做 consumers。
Broker:缓存代理,Kafa 集群中的一台或多台服务器统称为 broker。
安装运行环境
1. 指定更目录
cd /
2. 创建目录
mkdir www
cd /www
3. 下载使用 kafka|zookeeper
kafka
wget downloads.apache.org/kafka/2.5.0/k...
zookeeper
wget apache.inspire.net.nz/zookeeper/zo...
4. 解压两个包
tar zxvf kafka_2.12-2.5.0.tgz
tar zxvf apache-zookeeper-3.6.1-bin.tar.gz
mv apache-zookeeper-3.6.1-bin zookeeper
mv kafka_2.12-2.5.0.tgz kafka
5. 配置 zookeeper
cd zookeeper
mkdir data
cd conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
cd ../
cd data
vi myid (输入 1,保存退出) 对应 zoo.cfg 的配置文件的中 server.1
6. 在 zookeeper 目录下 启动服务
./bin/zkServer.sh start
成功启动如下
$ JMX enabled by default
$ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg
$ Starting zookeeper … STARTED
7. 切换到 kafka 目录,配置服务端文件
cd /www/kakfa
vi /config/server.properties
放开对外监听地址
advertised.listeners=PLAINTEXT://192.168.10.10:9092
填写 zookeeper 地址
zookeeper.connect=192.168.10.10:2181
8. 启动 kafka(启动成功自动注册到 zookeeper 服务),成功返回 pid
bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
9. 启动服务端,查看 kakfa 是否成功注入,zookeeper 服务是否正常
./zkCli.sh -server 192.168.10.10:2181
出现以下,说明客户端没问题,可查看 zookeeper 管理的项目目录
[zk: localhost:2181(CONNECTED) 0]
撸代码(kafka-php 发现无法主动创建主题,未解决)
包地址里,面有简单的事例和使用说明
packagist.org/packages/nmred/kafka...
rdkafka 参考文档
arnaud.le-blanc.net/php-rdkafka-do...
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: