没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1.Kafka 的设计时什么样的呢?
Kafka 将消息以 topic 为单位进行归纳
将向 Kafka topic 发布消息的程序成为 producers.
将预订 topics 并消费消息的程序成为 consumer.
Kafka 以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个 broker.
producers 通过网络将消息发送到 Kafka 集群,集群向消费者提供消息
2.数据传输的事物定义有哪三种?
数据传输的事务定义通常有以下三种级别:
(1)最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输
(2)最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输.
(3)精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被一次而且
仅仅被传输一次,这是大家所期望的
3.Kafka 判断一个节点是否还活着有那两个条件?
(1)节点必须可以维护和 ZooKeeper 的连接,Zookeeper 通过心跳机制检查每个节点的连接
(2)如果节点是个 follower,他必须能及时的同步 leader 的写操作,延时不能太久
4.producer 是否直接将数据发送到 broker 的 leader(主节点)?
producer 直接将数据发送到 broker 的 leader(主节点),不需要在多个节点进行分发,为了帮
助 producer 做到这点,所有的 Kafka 节点都可以及时的告知:哪些节点是活动的,目标 topic
目标分区的 leader 在哪。这样 producer 就可以直接将消息发送到目的地了
5、Kafa consumer 是否可以消费指定分区消息?
Kafa consumer 消费消息时,向 broker 发出"fetch"请求去消费特定分区的消息,consumer 指
定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,customer 拥有了
offset 的控制权,可以向后回滚去重新消费之前的消息,这是很有意义的
6、Kafka 消息是采用 Pull 模式,还是 Push 模式?
Kafka 最初考虑的问题是,customer 应该从 brokes 拉取消息还是 brokers 将消息推送到
consumer,也就是 pull 还 push。在这方面,Kafka 遵循了一种大部分消息系统共同的传统的
设计:producer 将消息推送到 broker,consumer 从 broker 拉取消息
一 些 消 息 系 统 比 如 Scribe 和 Apache Flume 采 用 了 push 模 式 , 将 消 息 推 送 到 下 游 的
consumer。这样做有好处也有坏处:由 broker 决定消息推送的速率,对于不同消费速率的
consumer 就不太好处理了。消息系统都致力于让 consumer 以最大的速率最快速的消费消息,
但不幸的是,push 模式下,当 broker 推送的速率远大于 consumer 消费的速率时,consumer
恐怕就要崩溃了。最终 Kafka 还是选取了传统的 pull 模式
Pull 模式的另外一个好处是 consumer 可以自主决定是否批量的从 broker 拉取数据。Push 模
式必须在不知道下游 consumer 消费能力和消费策略的情况下决定是立即推送每条消息还是
缓存之后批量推送。如果为了避免 consumer 崩溃而采用较低的推送速率,将可能导致一次
只推送较少的消息而造成浪费。Pull 模式下,consumer 就可以根据自己的消费能力去决定这
些策略
资源评论
千源万码
- 粉丝: 764
- 资源: 368
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功