为什么是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 ...
随机推荐
- IOS提示控件UIActionSheet,UIAlertView
iphone中常用的消息提示控件,就是UIActionSheet和UIAlertView了,在Web开发中,UIActionSheet就像是confirm(),而UIAlertView就像是alert ...
- eclipse 启动报错 java was started but returned code=13
eclipse启动不了,出现“Java was started but returned exit code=13......”对话框如下 我的解决方法是:去控制面板--程序--卸载程序和功能下面查看 ...
- django 删除表后如何恢复
大家都知道Python manage.py makemigrations 创建迁移文件也就是sql语句,python manage.py migrate执行makemigrations创建的文件,如果 ...
- 大量数据更新导致fgc频繁引起jvm服务暂停。
线上跑的几台server突然出现大量fgc,因为在fgc过程的stop the world太久.引起其他应用訪问该server上的接口大量超时.(发生超时的时间点和fgc时间点一致) 先进行初步的优化 ...
- DTD 和 Schema简介
什么是DTD? DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块. 它使用一系列的合法元素来定义文档结构. DTD例子 <?xml version="1.0"? ...
- Javascript modules--js 模块化
https://medium.freecodecamp.org/javascript-modules-a-beginner-s-guide-783f7d7a5fcc 这个网站也是非常好:https:/ ...
- [WCF菜鸟]什么是WCF
一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...
- block传值以及利用block封装一个网络请求类
1.block在俩个UIViewController间传值 近期刚学了几招block 的高级使用方法,事实上就是利用block语法在俩个UIViewController之间传值,在这里分享给刚開始学习 ...
- Win7如何配置java环境变量,运行环境
直接运行eclipse,弹出错误提示. 1 确保你安装了JDK,安装之后文件夹示例如下(jdk1.x.x取决于你安装的JDK版本) 2 系统,高级系统设置,高级,环境变量新建一个JAVA_HO ...
- python 奇技淫巧
列表内部的字典的value进行排序 li = [{a:1,b:2,c:3,d:4},{e:5,f:6,g:7,h:8}] li = [{"day":2},{"day&qu ...