在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样一些问题: 我想分析一下用户行为(pageviews),以便我能设计出更好的额广告位; 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存数据库浪费,直接存硬盘操作效率又低
高水平扩展、高吞吐能力
顺序读写代替随机读写,两者相差将近10000倍,免去寻道时间
AMQP协议 消费者:从消息队列中请求消息的客户端应用程序; 生产者:向broker发布消息的客户端应用程序; AMQP服务器端:用来接收生产者发送的消息并将这些消息路由给服务器中的队列;
主题:一个主题类似于新闻中的体育、娱乐、教育等分类概念,在实际工程中通常一个业务一个主题; 分区:一个topic中的消息数据安装多个愤青组织,分区是kafka消息队列组织的最小单位,一个愤青可以看作是一个FIFO的队列;
kafka依赖java1.8+,所以必须保证系统安装。
Download:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
http://apache.fayea.com/kafka/0.10.2.1/kafka_2.12-0.10.2.1.tgz
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic 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
生产和消费一对一的关系,offset较为重要
订阅式消费,以组定义进行消费