Kafka教程(二)---------------Kafka架构初识
2017-11-17 15:56
585 查看
一. 消息队列
1. 存在价值解耦消息产出组件与接收消息组件,如果两者强关联,那么一边有修改,另一边就需要跟着修改
解耦之后,消息产出组件与接收消息组件可以自己独立修改,并且还能横向扩展
消息队列
消息会持久化或者其他方式保存一段时间,两端出现任何问题不会导致数据丢失,两端服务在启动之后可以恢复数据
异步通信
之前的方式,接收方必须及时接收消息并进行存储。引入消息系统后消息消费方可以自己控制何时去处理消息数据
2. 常见消息队列
应用在分布式系统中的消息队列叫做分布式消息队列,常见的分布式消息队列有:ActiveMQ,RabbitMQ,kafka二. Kafka shell操作
首先可以通过一系列操作对kafka有个直观的认识,里面的有些概念可能不明白,后面将会详细讲解注意:下面操作中zkhost、kafkahost请各位都替换为自己的ip或者hostname
1) 创建topic
这个topic叫做test,只有一个分区,一个副本。
bin/kafka-topics.sh --create --zookeeper zkhost:2181 --replication-factor 1 --partitions 1 --topic test
2) 查看所有topic
bin/kafka-topics.sh --list --zookeeper zkhost:2181
3) 向某个发送消息
bin/kafka-console-producer.sh --broker-list kafkahost:9092 --topic test
即可发送消息了
4) 接收消息
bin/kafka-console-consumer.sh --zookeeper zkhost:2181 --topic test --from-beginning
5) 查看topic详情
bin/kafka-topics.sh --describe --zookeeper zkhost:2181 --topic test
6) 删除topic
./bin/kafka-topics --delete --zookeeper zkhost:2181 --topic test
前提是server.properties中: delete.topic.enable=true
7) 查询topic的offset的范围
查询topic名字为test的offset的最小值:
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list kafkahost:9092 -topic test --time -2
输出
test:0:1288
查询offset的最大值:
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list kafkahost:9092 -topic test --time -1
输出
test:0:7885
从上面的输出可以看出topic:test只有一个partition:0 offset范围为:[1288,7885]
三. Kafka中的重要概念
BrokerKafka是分布式的,在kafka集群中,每一个kafka服务进程都可以称为一个broker
(可以和第一节的broker id进行对比)
Topic
也就是消息的名字,是业务上对消息的分组与区分。比如:告警的消息队列、错误信息的消息队列、问候信息的消息队列。
Partition
对于同一个topic,可以分为多个partition,比如topic1分为3个partition,partition0~partition2。相当于把一个整体分为3个部分,这样就实现了负载均衡
所以可以看到,每个partition上的数据虽然不一定相邻,但一定是有序的
至于每一条数据如何分配到不同的broker的,这个后一节实现细节中会详细讲解
replication
为了保证数据的容错性,通常会设置replication。这个就是数据备份的功能。
比如说设置为replication=2,那么每个partition都会进行备份
相关文章推荐
- kafka初识(一)概念及架构
- 大数据架构开发 挖掘分析 Hadoop HBase Hive Storm Spark Java Flume ZooKeeper Kafka Redis MongoDB 机器学习 云计算 视频教程
- (一)Kafka中文教程-初识kafka
- 大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程
- 大数据架构开发 挖掘分析 Hadoop HBase Hive Storm Spark Flume ZooKeeper Kafka Redis MongoDB Java 机器学习 云计算 视频教程
- Kafka剖析(一):Kafka背景及架构介绍
- 10014---CentOS6.5下kafka+ZooKeeper下载与安装详细教程-多机版本1
- 仿迅雷播放器教程 -- 媒体播放三大底层架构简析 (3)
- 一、初识GDB(Linux下调试工具GDB教程)
- 分布式发布订阅消息系统 Kafka 架构设计 - 目前见到的最好的Kafka中文文章
- Kafka使用入门教程
- kafka初识(二)环境搭建及应用
- kafka-整体架构
- kafka socket架构 处理流程
- kafka socket架构 处理流程
- Kafka 初识
- 深入浅出Hive企业级架构优化视频教程
- 深入浅出Hive企业级架构优化视频教程
- 分布式发布订阅消息系统 Kafka 架构设计
- Hive视频教程|hive企业级架构课程