Pages

Thursday, 24 May 2018

分布式发布订阅消息系统kafka入门

Apache Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。

1. Kafka资料

2.安装

Step 1: 下载
下载  0.11.0.0 release版本到自己喜欢的目录并且解压.下载慢的可以试试百度云
tar zxvf kafka_2.11-0.11.0.0.tgz
cd kafka_2.11-0.11.0.0
 

Step 2:启动服务

1.先启动一个ZooKeeper服务器
Kafka需要和ZooKeeper配套使用,所以需要先启动一个ZooKeeper服务器,如果还没有安装。 可以使用和kafka一起打包的便捷脚本来获取一个快速而又脏的单节点ZooKeeper实例:
bin/zookeeper-server-start.sh config/zookeeper.properties
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
 
2. 启动kafka
在包目录下使用下面的命令启动kafka:
bin/kafka-server-start.sh config/server.properties

Step 3:创建一个topic

在一个分区下创建一个topic—“test”:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
 
Created topic "test".
 
我们可以使用list命令来查看这个topic:
bin/kafka-topics.sh --list --zookeeper localhost:2181
 
除了手动创建topic,也可以将broker配置为当发布的主题不存在时自动创建主题。
 

Step 4: 发送消息

Kafka附带一个命令行客户端,它将从文件或标准输入中输入,并将其作为消息发送到Kafka群集。 默认情况下,每行将作为单独的消息发送。
运行生产者,然后在控制台中输入一些消息以发送到服务器:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
 
This is a message
This is another message
 

Step 5: 启动消费者

Kafka还有一个命令行消费者,将接收到的消息转储到标准输出。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
 
This is a message
This is another message
 
注, 正常情况下,服务器,生产者,消费者分别占用一个terminal,简单的安装和测试到这里.

 
 

 
 

 


No comments:

Post a Comment