热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么卡夫卡不是CAP定理中的P.

如何解决《为什么卡夫卡不是CAP定理中的P.》经验,为你挑选了1个好方法。

Kafka的主要开发人员表示Kafka是CA而CAP是CAP定理.但我很困惑,卡夫卡不是分区容忍的吗?我认为确实如此,当一个复制失败时,另一个将成为领导者并继续工作!

另外,我想知道如果Kafka使用P怎么办?P会伤害C还是A?



1> Giorgos Myri..:

CAP定理指出,任何分布式系统最多可以提供三种保证中的两种:一致性,可用性和分区容差.

根据LinkedIn的工程师(Kafka最初成立的地方),Kafka是一个CA系统:

所有分布式系统必须在保证一致性,可用性和分区容差(CAP定理)之间进行权衡.我们的目标是支持在单个数据中心内的Kafka群集中进行复制,其中网络分区很少,因此我们的设计侧重于维护高可用性和高度一致性的副本.强一致性意味着所有副本都是字节到字节相同的,这简化了应用程序开发人员的工作.

但是,我会说这取决于您的配置,更准确地说取决于变量acks,min.insync.replicas以及replication.factor.根据文件,

如果主题仅配置了两个副本且一个失败(即,同步副本中只有一个仍然存在),则指定acks = all的写入将成功.但是,如果剩余的副本也失败,则这些写入可能会丢失.虽然这确保了分区的最大可用性,但对于喜欢耐用性而非可用性的一些用户来说,这种行为可能是不合需 因此,我们提供了两种主题级配置,可用于优先考虑消息的持久性和可用性:

    禁用不洁的领导者选举 - 如果所有副本都不可用,则分区将保持不可用,直到最近的领导者再次可用.这有效地优先于消息丢失风险的不可用性.请参阅上一节关于不洁领导人选举的部分以获得澄清.

    指定最小ISR大小 - 如果ISR的大小高于某个最小值,则分区将仅接受写入,以防止丢失仅写入单个副本的消息,该副本随后变为不可用.此设置仅在生产者使用acks = all时生效,并保证至少通过此许多同步副本确认消息.此设置提供了一致性和可用性之间的权衡.最小ISR大小的更高设置保证了更好的一致性,因为保证将消息写入更多副本,这降低了它将丢失的可能性.但是,它会降低可用性,因为如果同步副本的数量低于最小阈值,则分区将无法进行写入.


阅读这篇文章-https://aphyr.com/posts/293-jepsen-kafka。它出色地解释了分区容限!
推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • 本文介绍了一种求解最小权匹配问题的方法,使用了拆点和KM算法。通过将机器拆成多个点,表示加工的顺序,然后使用KM算法求解最小权匹配,得到最优解。文章给出了具体的代码实现,并提供了一篇题解作为参考。 ... [详细]
  • .htaccess文件 ... [详细]
author-avatar
杯中水1129_909
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有