Kafka宕机引发的高可用问题 ---- 问题要从一次Kafka的宕机开始说起。 从Kafka部署后,系统内部使用的Kafka一直运行稳定,没有出现不可用的情况。 但最近系统测试人员常反馈偶有Kafka消费者收不到消息的情况,登陆管理界面发现三个节点中有一个节点宕机挂掉了。 Kafka 的多副本冗余设计 ---- 不管是传统的基于关系型数据库设计的系统,还是分布式的如zookeeper、redis、Kafka、HDFS等等,实现高可用的办法通常是采用冗余设计,通过冗余来解决节点宕机不可用问题 解决问题 ---- 绕了一大圈,了解了Kafka的高可用机制,终于回到我们一开始的问题本身,Kafka的一个节点宕机后为什么不可用? 所以,只要将Topic副本个数设置为和Broker个数一样,Kafka的多副本冗余设计是可以保证高可用的,不会出现一宕机就不可用的情况(不过需要注意的是Kafka有一个保护策略,当一半以上的节点不可用时
这里所说的某些情况,从严重程度依次为:Kafka 宕机、服务器宕机、机房地震、城市毁灭、地球毁灭。不要觉得树哥在危言耸听,如果你的服务器部署在乌克兰的首都,那是不是就会遭遇城市毁灭的风险了? 在这种情况下,如果 Leader 分片所在服务器发生宕机,那么这些已经发送的数据会丢失。 这时候如果 Kafka 所在服务器断电或宕机,那么消息也是丢失了。而如果只是 Kafka 服务崩溃,那么消息并不会丢失。 如果服务器宕机了,即使我们设置了每来一条消息就写入一次磁盘,那么也有可能在写入 PageCache 后、写入磁盘前这个关键点,服务器发生宕机。 对于大多数的应用,考虑服务器宕机级别的情况下,对于 Kafka 消息来说,只需要考虑如下几个内容即可: 生产者。 根据业务重要性,设置好 acks 参数,并做好业务重试,以及告警记录即可。
为防止 Kafka 集群在生产中出现不稳定的情况,我们决定将自托管的 Kafka 集群迁移到 Confluent Cloud,并将每个数据中心的单集群分割成多个集群。 为什么要云托管 Kafka 集群? 自管理一个 Kafka 集群并非易事,尤其是在执行一些任务时,例如重新平衡 brokers 之间的分区,或者升级 brokers 版本等,这些必须认真规划和实施。 透明的版本升级 Kafka 的代码库不断得到改进,尤其是专注于 KIP-500:元数据将存储在 Kafka 内的分区中,而不是存储在 ZooKeeper,控制器将成为该分区的 leader。 将 2000 个微服务切换到多集群 Kafka 架构 在 Wix,我们拥有一个标准的 JVM 库和代理服务,用于与 Kafka 进行交互,称为 Greyhound。 零宕机迁移 在实时流量中执行迁移,就意味着必须进行细致的规划和实施。
p=5107 问题要从一次 Kafka 的宕机开始说起。 Kafka 宕机引发的高可用问题 从 Kafka 部署后,系统内部使用的 Kafka 一直运行稳定,没有出现不可用的情况。 但最近系统测试人员常反馈偶有 Kafka 消费者收不到消息的情况,登陆管理界面发现三个节点中有一个节点宕机挂掉了。 Kafka 的多副本冗余设计 不管是传统的基于关系型数据库设计的系统,还是分布式的如 Zookeeper、Redis、Kafka、HDFS 等等,实现高可用的办法通常是采用冗余设计,通过冗余来解决节点宕机不可用问题 解决问题 绕了一大圈,了解了 Kafka 的高可用机制,终于回到我们一开始的问题本身,Kafka 的一个节点宕机后为什么不可用?
Kafka默认情况下用于复制 - 事实上,我们将不复制的主题实现为复制因子为1的复制主题。 复制单元是主题分区。 在非故障情况下,Kafka中的每个分区都有一个leader和零个或多个followers。包括leader在内的副本总数构成复制因子。所有读写都将转到分区的leader。 follower像正常的Kafka消费者一样消费来自leader的消息并将其应用于他们自己的日志中。 Kafka没有处理产生任意或恶意的响应(可能是由于错误或foul play)节点中所谓的“ Byzantine”故障。 Kafka提供的保证是,只要始终存在至少一个同步副本,就不会丢失已提交的消息。 在短暂的故障转移期后,Kafka将在出现节点故障时仍然可用,但在网络分区存在时可能无法保持可用状态。
本篇博主带来的是Kafka的Consumer API操作。 Consumer消费数据时的可靠性是很容易保证的,因为数据在Kafka中是持久化的,故不用担心数据丢失问题。 由于consumer在消费过程中可能会出现断电宕机等故障,consumer恢复后,需要从故障前的位置的继续消费,所以consumer需要实时记录自己消费到了哪个offset,以便故障恢复后继续消费。 此为异步提交代码 package com.buwenbuhuo.kafka.consumer; import org.apache.kafka.clients.consumer.ConsumerConfig 此为同步提交代码 package com.buwenbuhuo.kafka.consumer; import org.apache.kafka.clients.consumer.ConsumerConfig ; import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.common.TopicPartition
之前在网上看过一篇文章,是讲Tomcat进程意外退出的,我看完感觉好奇,自己也测试了下,果然是有这种问题,所以自己也借此总结一下。
今天博客突然打不开,一看需要连接数据库的网站都挂了,静态网站没挂,猜测是数据库问题。
2)Kafka 最初是由LinkedIn公司开发,并于 2011 年初开源。2012 年 10月从Apache Incubator毕业,并成为顶级开源项目。 没有 replication 的情况下,一旦b roker 宕机,其上所有 patition 的数据都不可被消费,同时 producer 也不能再将数据存于其上的 partition。 -. 1 atguigu atguigu 12 3月 4 19:34 00000000000000000000.timeindex -rw-rw-r--. 1 atguigu atguigu 10 producer = new KafkaProducer<String, String>(props); // 3 发送消息 for (int i = 0; i < 10 It will also poll regularly (default: every 10min so 600000ms).
当然,这种机制必须具备数据持久化能力,所以kafka是这个缓冲机制的一个最佳选择。 在这篇讨论里我想通过一个“近实时交易平台nrtxn(near realtime transaction)”项目来示范“用kafka实现分布式近实时交易”具体的设计和实现。 nrtxn的系统流程如下: 用户调用http api提交请求 -> http-server将请求派送给各用户所属的分片workManager -> workManager将请求写入kafka -> kafka reader读出请求并按请求中交易项目将请求发送给项目所属的分片txnProcessor-> txnProcessor完成操作后发送回应至workManager -> workManager 系统出现故障重启后留在kafka队列里的请求视为无效,因为http 端请求早已经过时了。
CHAPTER 10 Monitoring Kafka 监控kafka Apache Kafka有许多针对其操作的度量,这些度量指标非常多,会让人混淆哪些是重要的,哪些是可以忽略的。 有关未复制分区的详细信息,请参见表10-1。 这个数字越低,broker的负载就越大,经验告诉我们,空闲比率低于20%表面存在潜在的问题,低于10%通常时红的性能问题。 ,丢失消息或者在应用程序中造成背压,者通常是可能造成业务宕机的严重问题,需要理解解决。 此外,他需要消费者的适当操作,因为指标是由消费者对每个获取请求进行计算的,如果消费者宕机,则度量要么不准,要么不可用。 消费者监控的首选方法是让外部的进程可以看到两个分区broker的状态。
太平洋标准时间上午8点10分:AWS表示影响US-WEST-1和US-WEST-2这两个区域的故障背后的问题已得到解决。 我们已经解决了影响通向US-WEST-1区域的互联网连接的问题。
停机的时间,如图3所示: 4)对比tomcat停机的时间,查看操作系统的日志/var/log/messages在15:32:28相关日志内容,如图4所示,可以得出以下信息: 5)tomcat宕机 10)现在的问题焦点就转移到,原有启动脚本里面增加了一行tail语句导致tomcat异常退出的原因:从脚本的执行过程来看,tomcat启动后,当前shell进程并没有退出,而是挂在tail进程上。 jstack堆栈快照 图7 jstack堆栈快照 图8 ctp.log日志片段 修改与建议 该问题的解决,也能解释之前项目现场其他环境下没有异常日志生成,却出现了tomcat异常宕机的情况
这次给大家分享的是Kafka的10道面试题,就难度我觉得是比较基础的,但考的知识点还比较全面,可以用来考察自己掌握Kafka基础的程度。 1. Kafka是什么? 而TransactionID与PID会一一对应,这样当Producer宕机时,集群启动一个新的Producer,在初始化时可以通过TransactionID获得PID,便能继续工作。 (三)Broker端丢失消息 Leader副本所在的Broker宕机,而Follower副本还没有完全通过Leader 解决办法: 设置acks =-1或ALL,保证Follower副本写入消息; replication.factor 10. 以上就是本次分享的10道Kafka面试题,有问题的地方,欢迎留言交流。 我是草捏子,一只热爱技术和生活的草鱼,我们下期见!
dongxiao-yang/p/7767621.html 本文所研究的spark-streaming代码版本为2.3.0-SNAPSHOT spark-streaming为了匹配0.10以后版本的kafka 客户端变化推出了一个目前还是Experimental状态的spark-streaming-kafka-0-10客户端,由于老的0.8版本无法支持kerberos权限校验,需要研究下spark-streaming-kafka -0-10的源码实现以及系统架构。 CachedKafkaConsumer初始化kafka consumer客户端的相关代码如下,可以看到真正拉数据的executor客户端是采用了assgin方式订阅到单个分区初始化完成的。 -0-10客户端采用了与原有版本完全不同的架构,一个job里面运行了两组consumer:driver consumer和 executor consumer,driver端consumer负责分配和提交
但使用过程中可能会遇到各种各样的问题,比如系统资源使用率高、集群节点宕机等,进而影响我们生产业务正常开展。为了不让消息队列失控,增加监控是非常必要的。今天来聊一聊 Kafka 有哪些重要的监控指标。 1 基础指标 基础指标是监控系统常见的监控指标,这里介绍 4 个方面: CPU、内存、硬盘、网络 I/O 等资源使用情况,Kafka 提供了 BytesIn/BytesOut 指标来监控带宽使用率; TCP 连接数、文件描述符使用情况; JVM 监控指标,Kafka 也是一个 JVM 进程,需要监控堆内存使用情况、FULL GC 频率和时长、JVM 线程数等; 网络延迟。 2 Broker 指标 2.1 UnderReplicatedPartitions Kafka 分区 Leader 节点收到消息后,会同步给 Follower 节点。 5 总结 Kafka 的监控指标非常多,关键指标是必须要监控的,其他指标可以根据需要添加,同时也可以加入日志相关的监控。希望本文能对你理解 Kafka 有所帮助。
9059917216012421e8e89a4aa02f15b75346d2b7 为master数据库添加了一个监控 发现了2个slave(由此可以看出,哨兵无需配置slave,只需要指定master,哨兵会自动发现slave) 5、从宕机及恢复 20:09:33.509 # +sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379 说明已经监控到slave宕机了 6、主宕机及恢复 哨兵控制台打印出如下信息: 2989:X 05 Jun 20:16:50.300 # +sdown master taotaoMaster 127.0.0.1 6379 说明master 服务已经宕机 2989:X 05 Jun 20:16:50.300 # +odown master taotaoMaster 127.0.0.1 6379 #quorum 1/1 2989:X 05 Jun 20:17:22.463 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ taotaoMaster 127.0.0.1 6381 发现6379已经宕机
Garmin 遭勒索攻击的风波未平,近日,佳能又遭受了勒索软件攻击,攻击除了让佳能的一些网站宕机外,据说还导致佳能服务器中高达 10TB 的数据被盗。 BleepingComputer(以下称我们)一直在关注佳能公司出现的问题,佳能云照片和视频存储服务出现数据泄露,这两个服务为用户免费提供10GB存储功能。 有Maze声称已经窃取佳能10TB的数据 在我们与Maze取得联系后,Maze 表示攻击是在今天早上进行的,窃取了对方10TB的数据、私有云数据库等等,这些数据窃取是攻击行动的一部分成果。
这里有 10 个具体的技巧,可以帮助您优化 Kafka 部署并更容易管理: 设置日志配置参数以使日志易于管理 了解 kafka 的 (低) 硬件需求 充分利用 Apache ZooKeeper 以正确的方式设置复制和冗余 图 1 Kafka 提交日志压缩过程 请参考 Kafka 操作日志文档: 日志: https://kafka.apache.org/documentation/#log 压缩基础知识: https:// 按照保守的估计,一个主题上的一个分区可以传递 10 MB/s,根据这个估计可以推断出您需要的总吞吐量。 总的来说,这里有条规则值得一用:主题的总分区数要低于 10,集群的总分区数要低于 10,000。如果您不这样做,那么需具有很高的监控能力,并且准备好处理可能非常具有挑战性的重平衡和中断! 6 出于安全性考虑配置和隔离 Kafka 确保 Kafka 部署的两个主要关注点是 1)Kafka 的内部配置,2)Kafka 运行的基础设施。
苹果天气短暂“宕机”一事影响范围甚广,包括 iOS、watchOS 和 macOS 在内多个 Apple 平台上的天气应用受到影响,不仅国内用户无法在天气应用中查看选定地区的实时天气预报,全球多个地区的用户同样如此 对于苹果天气短暂“宕机”一事,苹果客服回应称没有接到相关反馈,请尝试对设备进行重启或将系统更新至最新版本。 精彩推荐