概念
一个消息中间件服务程序。实现话题发布和订阅功能,消息的生成者发布消息到kafka,消费者从kafka 获取消息。
和它类似的有ActiveMQ、RabbitMQ、ZeroMQ等。
各种类型的消息中间件设计的侧重点不一样,最终表现出来的各方面的情况也不一样。比如Kafka侧重性能、ActiveMQ侧重消息传递可靠性、ZeroMQ为了减少使用空间简化了功能。
如果选用这些中间件需要结合项目的具体情况。我这边主要用于大数据的流式处理,选择Kafka,原因是为了追求极致性能。
架构
producer:生产者,发出消息
consumer:消费者接受消息并处理
broker: 缓冲区,队列,用于存储消息。
zookeeper:作为broker的注册器,目的实现高可用。
使用
1)搭建环境
下载-》解压-》配置-》启动
下载地址:http://kafka.apache.org/downloads
创建topic
bin/kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 1 --partitions 1 --topic test
查看topic
bin/kafka-topics.sh -list -zookeeper ip:2181
创建生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
创建消费者
bin/ka