- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Kafka是一个分布式流数据处理平台
流数据处理平台必须具备三个关键功能:
它允许你发布订阅流数据,在这方面,他类似一个消息队列或企业级消息系统(消息中间件)
它让你存储的流式数据具有容错机制
它让你能实时处理流式数据
Kafka概述
Topic、Partition、Producer、Consumer
消息从producer到topic用push
消息从topic到consumer用pull
Kafka关键概念
partition、consumer group
每个topic的消息会广播给每个consumer group,但是每条消息在某个group内只有一个consumer能收到。
组内的消费者数量不要大于topic的分区数
Kafka关键概念
Partition
每个分区内的数据保证数据的先后顺序,不同分区内的数据无法保证。
Kafka关键概念
Partition、Replication
每个分区的外部读写都在leader上,所以不同分区 的leader会均衡分布在Broker集群上
Kafka关键概念
Broker、Zookeeper
Broker是kafka的服务实例,无中心节点,通过Zookeeper完成分区leader-follower的切换
Kafka关键概念
日志收集
应用程序可以把日志集中发到kafka中,不需要记录到本地,再由专门的日志管理程序从kafka中取处理。对于多个进程读写同一个日志文件的场景,可以避免日志文件的加锁操作。
也可以对kafka中的日志进行实时分析。
Kafka应用场景
消息队列
Kafka同一个partition内部的消息保证先进先出,并且每条消息可以保证至少被消费一次(at least once),同一个topic内的消息可以被多个组的消费者接收。
可以实现发布订阅和普通的先进先出队列
Kafka应用场景
数据Table记录转换为Stream
通过指定条件定时把表中新增或者变更的记录推到kafka中,实现用流式处理方式来处理数据库的数据
Kafka在0.9版本以后提供了JdbcSource Connector工具类用于把数据库数据写入kafka,目前支持自增ID列和时间列作为记录变化的条件,当然也可以用producer的api来实现
Kafka应用场景
分布式事件驱动
把事件集中存储到kafka,并分别放入同一个topic下的多个分区,分区数量可以是事件处理客户端实例数的3-5倍以上,这样便于事件客户端动态增减和负载均衡。
客户端一次获取多个事件后,全部处理完成再commit offset以保证事件至少被处理一次,由于事件要求高可靠,在高可靠读写情况下Kafka的性能下降比较明显
Kafka应用场景
高性能的分布式应用协调服务
Zookeeper介绍
存储数据模型
Znode
ZooKeeper数据模型的结构与文件系统很类似,每个节点称做一个Znode,ZooKeeper的各种功能特性都是通过Znode的操作和监控通知来实现,Znode有四种形式:
1、PERSISTENT
持久化目录节点,存储的数据不会丢失。
2、PERSISTENT_SEQUENTIAL
顺序编号的持久化目录节点,根据当前已近存在的节点数自动加 1,节点名称在路径后+%010d,例如/root/path0000000001。
Zookeeper关键概念
3、EPHEMERAL
临时目录节点,一旦创建这个节点的客户端与服务器端口也就是session 超时,这种节点会被自动删除。
4、EPHEMERAL_SEQUENTIAL
临时自动编号节点。
Zookeeper关键概念
Watcher
Watcher用于监控ZNode的变化,ZNode上有相应的变化,就会触发这个Watcher,把相应的事件通知给设置Watcher的Client Watcher是一次性的,触发后需要重新设置才能继续监控Znode的变化
Zookeeper关键概念
Session
Client与ZooKeeper之间会维护一个Session,这个Session会有一个超时时间,Client通过定时心跳来保持Session。
当Session超时后,对应Client创建的临时节点和所有监视器都将失效
Zookeeper关键概念
Zookeeper的操作主要是对Znode的操作
Create: 创建一个Znode
Delete: 删除一个Znode
Exists: 判断Znode是否存在
GetData: 获取Znode上的数据
SetData: 设置Znode的数据
GetChildren: 获取Znode下的所有子节点
Zookeeper主要操作
分布式环境下的统一配置管理
在分布式系统中,不同主
文档评论(0)