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

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. VUE -- 十分钟入门 Less

    这篇文章来自 Danny Markov, 是我最喜欢的博主之一,实际上我最近翻译的一些文章全是出自他手.在查看本文之前你也可以 查看原文. 我们都知道写 CSS 代码是有些枯燥无味的,尤其是面对那些成 ...

  2. [置顶] kubernetes--Init Container

    概念 Init Container就是做初始化工作的容器.可以有一个或多个,如果有多个,这些 Init Container 按照定义的顺序依次执行,只有所有的InitContainer 执行完后,主容 ...

  3. 【Spark】SparkContext源代码解读

    SparkContext的初始化 SparkContext是应用启动时创建的Spark上下文对象,是进行Spark应用开发的主要接口,是Spark上层应用与底层实现的中转站(SparkContext负 ...

  4. apache 的rewrite函数配置伪静态

    配置伪静态目的:对于访问比较长的uri,利于网站搜索工具更容易记住,换句话利于SEO 在配置文件中添加或找到 <IfModule mod_rewrite.c> </IfModule& ...

  5. web-51job(前程无忧)-账户、简历-数据库设计

    ylbtech-DatabaseDesgin:web-51job(前程无忧)-账户.简历-数据库设计   1.A,数据库关系图 1.B,数据库设计脚本 /App_Data/1,Account.sql ...

  6. Windows 10 Enterprise LTSB版本

    Windows 10 Enterprise 评估版  |  90 天  Win10 企业版 LTSB版 14393.0.160715-1616.RS1_RELEASE_CLIENTENTERPRISE ...

  7. 接口测试工具(Postman)

    给大家介绍一款HTTP接口测试工具 -- Postman ! 优点: 1. 支持参数名与参数值自定义,无论head还是body 2. 支持多种方法调用,包含get与post 3. 支持鉴权加密,包含b ...

  8. Windows为什么双击打开‘我的电脑’, 没有了‘前进’‘ 后退’‘向上’等按钮?

    如图所示   点击查看 工具栏 标准按钮即可   左侧的数值虚线可以拖动到任意,还可以添加按钮如搜索,删除,复制,剪切等

  9. LeetCode题目:Gray Code

    原题地址:https://leetcode.com/problems/gray-code/ class Solution { public: vector<int> grayCode(in ...

  10. (三)Thymeleaf标准表达式之——文字(literals)

    2.2 文字(literals) 模板名称:text.html 2.2.1 文本(text literals)(放在 单引号 里面,可以是任意字符) <p> Now you are loo ...