什么是kafka?
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
简单地说就是一个实现消息的发送与高效消费的一个消息中间件。
kafka可以帮助我们做什么?或者是解决什么问题?
- 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如Hadoop、Hbase、Solr等;
- 消息系统:解耦和生产者和消费者、缓存消息等;
- 用户活动跟踪与审计数据收集:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到Hadoop、数据仓库中做离线分析和挖掘;
- 运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告;
- 流式处理;
5步快速搭建一个kafka的hello world
1.首先按这篇博文指向的文档把kafka安装包下载好后,启动好zookeeper和kafka实例。
kafka快速安装
2.进入kafka安装目录,创建一个名为test的topic。
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
3.开启一个消费者,监听test。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
4.向名为test的topic发送消息。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
This is a message
This is another message
5.消费者已经输出了刚才发送的消息,hello world实例搭建完成。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
This is a message
This is another message