回答几个网友提出的问题,不清楚的能够看上一篇内容。

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(二)的更多相关文章

  1. spark streaming 整合kafka(二)

    转载:https://www.iteblog.com/archives/1326.html 和基于Receiver接收数据不一样,这种方式定期地从Kafka的topic+partition中查询最新的 ...

  2. Kafka(二) —— Server端设计原理

    整理架构 kafka confluence kafka官方文档中文翻译-设计 消息设计 /** * 消息类 * * @author Michael Fang * @since 2019-11-14 * ...

  3. Kafka学习笔记

    一.Kafka使用背景 1. Kafka的定义 是一个分布式消息系统,由LinkedIn使用Scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipel ...

  4. 使用sparksql往kafka推送数据

    一.相关配置参数 1.同级目录resource文件夹下配置 brokers_list=kafkaxxx02broker01:9092,kafkaxxx02broker02:9092,kafkaxxx0 ...

  5. Apache kafka v1.0.0 部署文档

    简介: Apache Kafka 是一个 Scala 语言编写的可扩展.分布式.高性能的容错消息发布.订阅系统. 官网地址:http://kafka.apache.org 中文教程:http://ww ...

  6. 八、Kafka总结

    一 Kafka概述 1.1 Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 1)Apache Kafka是一个开源消息系统,由Scala写成. ...

  7. 五 akka streams kafka

    (转载 https://doc.akka.io/docs/akka-stream-kafka/current/home.html) 一: Akka Streams Kafka, also known ...

  8. Kafka学习笔记4--Kafka消费者的客户端(PHP)开发

    一.准备工作 虽然 Kafka 是用 Java/Scala 语言编写的,但这不妨碍它对多语言的支持.可以在 Kafka 官网的 CLIENTS 查看 Kafka 支持的语言,其中包括 C/C++.Py ...

  9. 【Kafka】监控及运维——kafka-eagle

    目录 简单介绍 概述 安装部署 一.环境要求 二.下载源码包并解压 三.准备数据库 四.修改配置文件 五.配置环境变量 六.启动kafka-eagle 七.成功运行 简单介绍 概述 Kafka-eag ...

随机推荐

  1. Hive JDBC——深入浅出学Hive

    第一部分:搭建Hive JDBC开发环境 搭建:Steps •新建工程hiveTest •导入Hive依赖的包 •Hive  命令行启动Thrift服务 •hive --service hiveser ...

  2. iOS:新浪微博OAuth认证

    新浪微博OAuth认证   1.资源的授权 •在互联网行业,比如腾讯.新浪,那用户人群是非常巨大的 •有时候要把某些用户资源共享出去,比如第三方想访问用户的QQ数据.第三方想访问用户的新浪微博数据 • ...

  3. C#实现在Form上截取消息的两种方法

    比较常用的是重载Form的DefWndProc方法,例如截取鼠标按下的消息: protected override void DefWndProc(ref Message m) { if ( m.Ms ...

  4. JWT笔记

    JWT是一个无状态登录的技术.所谓无状态,是指和传统的session技术相比,服务器端不需要存储用户的信息.在JWT技术中,agent向server请求一个Token. 这个Token由三部分组成,h ...

  5. CentOS6.8 安装FTP及添加用户

    一 安装FTP 1 检测是否已经安装FTP rpm -qa | grep vsftpd 2 若没有,则进行安装 yum install vsftpd 二 设置vsftpd开机启动 chkconfig ...

  6. 由需求而产生的一款db导出excel的工具

    代码地址如下:http://www.demodashi.com/demo/12062.html 程序员最大的毛病可能就是懒,因为懒所以做出了许许多多提高自己工作效率的工具. 起因于我是商业开发,既然是 ...

  7. The Application does not have a valid signature

    真机运行程序,报错(The application does not have a valid signature,如图 环境:Xcode7.3,使用cocoapods管理第三方库 如果确认证书没有问 ...

  8. 哇哦!恍然大悟般的“share”功能的实现!

    有一个问题一直困扰着我,也是我一直没有时间去了解和学习的,那就是前端(移动端)实现分享到微信.QQ好友.QQ空间.新浪微博等等平台的功能实现,虽然之前有做过,但是都是上一个领导自己写好的,我直接拿来用 ...

  9. Mysql-Proxy实现mysql读写分离、负载均衡 (转)

    在mysql中实现读写分离.负载均衡,用Mysql-Proxy是很容易的事,不过大型处理对于性能方面还有待提高,主要配置步骤如下: 1.1. mysql-proxy安装 MySQL Proxy就是这么 ...

  10. 简洁方便的集合处理——Java 8 stream流

    背景 java 8已经发行好几年了,前段时间java 12也已经问世,但平时的工作中,很多项目的环境还停留在java1.7中.而且java8的很多新特性都是革命性的,比如各种集合的优化.lambda表 ...