为什么是kafka(二)
回答几个网友提出的问题,不清楚的能够看上一篇内容。
1、
kafka的删除策略应该怎么配置?为了提升性能。我是不是应该1小时删除一次消费过的数据。
全然能够依据磁盘大小配置。仅仅要磁盘足够用,全然不是必需删除的那么着急。Kafka的吞吐量不会由于数据量的增长而减少。由于读写数据时,kafka全然是顺序的,仅仅记录offset。时间复杂度是O(1)。我以前測试过上T的数据,全然不受影响。
反倒是数据删除的太快,easy造成数据丢失。
2、
消息发送一直失败。到达了指定重试次数怎么处理?
client能够设置重试次数和重试间隔时间,由于一般kafka是以集群形式存在的。一直重试都不能成功,并不多见,常见的情况是应用和kafka集群断网。实际上在重试的过程中,假设应用挂掉。这个消息就丢失了,假设要避免此种情况发生,须要持久化消息,当然能够选择本地持久化和远程持久化,选择本地持久化也不是很安全。由于如今的应用server很有可能是虚拟机或者容器。远程持久化相对安全。
可是远程意味着须要网络。假设恰巧远程持久化也失败,该怎么办?解决此类问题。最后的救命稻草就是日志。
这类问题并不仅仅是在mq中,入库也是一样。分布式场景中很常见。可是由于发生的概率不大,通常都被开发者忽略。这也就是做结算的永远都不能把账算平的原因所在。通常要权衡处理这种小概率事件是不是值得。
重要的系统通常有定时检查的功能。作为小概率事件的事后补偿机制。
3、
假设总副本数为f,最多同意丢失多少副本?
最多同意丢失f-1个副本,也就是仅仅要有一个副本就没问题。当然这和broker的配置有关。
从服务端角度,怎样尽快将更新后的数据分布到整个系统,减少达到终于一致性的时间窗体,是提高系统的可用度和用户体验很重要的方面。对于分布式数据系统:
a)
N — 数据复制的份数
b)
W — 更新数据是须要保证写完毕的节点数
c)
R — 读取数据的时候须要读取的节点数
不论什么一个分布式系统,在服务端。要想保持强一致性。必须符合W+R>N。也就是说,如果一共同拥有3个节点。写数据的时候,三个节点都写入成功才返回,仅仅要有一个节点存活,就能保证数据是最新的。
4、
Kafka是有顺序的吗?
在同一个partition全然是有顺序的。生产者能够设置分区策略,能够自己定义分区策略,这样就能够依据业务分区。
举个样例,假设是跟用户相关的。全然能够依据用户id进行分区,同样用户的全部操作都进入同一个分区。也就达到了顺序性。
当然,有顺序也是有害处的,有顺序就意味着堵塞。假设消费一条消息一直失败。消费过程会受到堵塞,灵活的处理方式是重试到一定次数,把这条消息持久化到远端,跳过这条消息继续消费。
也就意味着失去了顺序。
为什么是kafka(二)的更多相关文章
- spark streaming 整合kafka(二)
转载:https://www.iteblog.com/archives/1326.html 和基于Receiver接收数据不一样,这种方式定期地从Kafka的topic+partition中查询最新的 ...
- Kafka(二) —— Server端设计原理
整理架构 kafka confluence kafka官方文档中文翻译-设计 消息设计 /** * 消息类 * * @author Michael Fang * @since 2019-11-14 * ...
- Kafka学习笔记
一.Kafka使用背景 1. Kafka的定义 是一个分布式消息系统,由LinkedIn使用Scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipel ...
- 使用sparksql往kafka推送数据
一.相关配置参数 1.同级目录resource文件夹下配置 brokers_list=kafkaxxx02broker01:9092,kafkaxxx02broker02:9092,kafkaxxx0 ...
- Apache kafka v1.0.0 部署文档
简介: Apache Kafka 是一个 Scala 语言编写的可扩展.分布式.高性能的容错消息发布.订阅系统. 官网地址:http://kafka.apache.org 中文教程:http://ww ...
- 八、Kafka总结
一 Kafka概述 1.1 Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 1)Apache Kafka是一个开源消息系统,由Scala写成. ...
- 五 akka streams kafka
(转载 https://doc.akka.io/docs/akka-stream-kafka/current/home.html) 一: Akka Streams Kafka, also known ...
- Kafka学习笔记4--Kafka消费者的客户端(PHP)开发
一.准备工作 虽然 Kafka 是用 Java/Scala 语言编写的,但这不妨碍它对多语言的支持.可以在 Kafka 官网的 CLIENTS 查看 Kafka 支持的语言,其中包括 C/C++.Py ...
- 【Kafka】监控及运维——kafka-eagle
目录 简单介绍 概述 安装部署 一.环境要求 二.下载源码包并解压 三.准备数据库 四.修改配置文件 五.配置环境变量 六.启动kafka-eagle 七.成功运行 简单介绍 概述 Kafka-eag ...
随机推荐
- 教育 z
奥巴马母亲留给儿子的遗产,不是谎言,而是让反对派不敢戮辨的——伟大的人格及优秀! 相比于奥巴马的母亲,中国式父母,更愿意走省心的路子.给孩子最催肥的食物,最昂贵的衣物,最庸懒的生活环境,不让孩子做任何 ...
- kubernetes1.5.2--部署dashboard服务
本文基于kubernetes 1.5.2版本编写 使用http方式访问api server的部署 cat dashboard-controller.yaml apiVersion: extension ...
- 设计模式之外观模式(PHP实现)
github地址:https://github.com/ZQCard/design_pattern/** * 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访 ...
- mac mysql命令行
https://www.cnblogs.com/lonecloud/p/5841522.html mac下使用mysql控制台命令行 命令行中输入 open .bash_profile 然后将 a ...
- GTK+重拾--09 GTK+中的组件(一)
(一):写在前面 在这篇文章中主要介绍了GTK+程序中的各种构件,这是解说构件的第一个部分,另外一部分将在下一个小节中讲到. 构件是建立一个GUI程序的基础.在GTK+的长期发展过程中.一些特定的构件 ...
- http://www.360doc.com/content/14/0313/17/16070877_360315087.shtml
http://www.360doc.com/content/14/0313/17/16070877_360315087.shtml
- oracle分页sql模板
select t2.* from (select t1.*,rownum rn from (select * from mytest) t1 where rownum<=860010) t2 w ...
- 权重轮询调度算法(WeightedRound-RobinScheduling)-Java实现3
权重轮询调度算法(WeightedRound-RobinScheduling)-Java实现3 之前两篇相关博文: 权重轮询调度算法(WeightedRound-RobinScheduling)-Ja ...
- linux系统预留内存和磁盘大小
默认情况下, Linux 会最多使用 40% 的可用内存作为文件系统缓存.当超过这个阈值后,文件系统会把将缓存中的内存全部写入磁盘, 导致后续的 IO 请求都是同步的. 将缓存写入磁盘时,有一个默认1 ...
- 如何在 Linux 中找到你的 公网IP 地址
每个网站都有一个独有的公开 IP 地址,可供任何人从任何地方访问. 互联网协议Internet Protocol(IP)不需要介绍 —— 我们每天都在使用它.即使你不直接使用它,当你在浏览器上输入 w ...