首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏码农架构

    Kafka宕机后不再高可用?探究Kafka高可用实现

    Kafka宕机引发的高可用问题 ---- 问题要从一次Kafka宕机开始说起。 从Kafka部署后,系统内部使用的Kafka一直运行稳定,没有出现不可用的情况。 但最近系统测试人员常反馈偶有Kafka消费者收不到消息的情况,登陆管理界面发现三个节点中有一个节点宕机挂掉了。 Kafka 的多副本冗余设计 ---- 不管是传统的基于关系型数据库设计的系统,还是分布式的如zookeeper、redis、Kafka、HDFS等等,实现高可用的办法通常是采用冗余设计,通过冗余来解决节点宕机不可用问题 解决问题 ---- 绕了一大圈,了解了Kafka的高可用机制,终于回到我们一开始的问题本身,Kafka的一个节点宕机后为什么不可用? 所以,只要将Topic副本个数设置为和Broker个数一样,Kafka的多副本冗余设计是可以保证高可用的,不会出现一宕机就不可用的情况(不过需要注意的是Kafka有一个保护策略,当一半以上的节点不可用时

    64520发布于 2021-09-18
  • 来自专栏陈树义

    服务器宕机了,Kafka 消息会丢失吗?

    这里所说的某些情况,从严重程度依次为:Kafka 宕机、服务器宕机、机房地震、城市毁灭、地球毁灭。不要觉得树哥在危言耸听,如果你的服务器部署在乌克兰的首都,那是不是就会遭遇城市毁灭的风险了? 在这种情况下,如果 Leader 分片所在服务器发生宕机,那么这些已经发送的数据会丢失。 这时候如果 Kafka 所在服务器断电或宕机,那么消息也是丢失了。而如果只是 Kafka 服务崩溃,那么消息并不会丢失。 如果服务器宕机了,即使我们设置了每来一条消息就写入一次磁盘,那么也有可能在写入 PageCache 后、写入磁盘前这个关键点,服务器发生宕机。 对于大多数的应用,考虑服务器宕机级别的情况下,对于 Kafka 消息来说,只需要考虑如下几个内容即可: 生产者。 根据业务重要性,设置好 acks 参数,并做好业务重试,以及告警记录即可。

    3.1K31编辑于 2022-09-08
  • 来自专栏深度学习与python

    如何零宕机将本地 Kafka 集群迁移上云?

    为防止 Kafka 集群在生产中出现不稳定的情况,我们决定将自托管的 Kafka 集群迁移到 Confluent Cloud,并将每个数据中心的单集群分割成多个集群。 为什么要云托管 Kafka 集群? 自管理一个 Kafka 集群并非易事,尤其是在执行一些任务时,例如重新平衡 brokers 之间的分区,或者升级 brokers 版本等,这些必须认真规划和实施。 透明的版本升级 Kafka 的代码库不断得到改进,尤其是专注于 KIP-500:元数据将存储在 Kafka 内的分区中,而不是存储在 ZooKeeper,控制器将成为该分区的 leader。 将 2000 个微服务切换到多集群 Kafka 架构 在 Wix,我们拥有一个标准的 JVM 库和代理服务,用于与 Kafka 进行交互,称为 Greyhound。 零宕机迁移 在实时流量中执行迁移,就意味着必须进行细致的规划和实施。

    1.5K20编辑于 2022-04-19
  • 来自专栏业余草

    慌得一逼,Kafka宕机后不再高可用?吓死宝宝了

    p=5107 问题要从一次 Kafka宕机开始说起。 Kafka 宕机引发的高可用问题 从 Kafka 部署后,系统内部使用的 Kafka 一直运行稳定,没有出现不可用的情况。 但最近系统测试人员常反馈偶有 Kafka 消费者收不到消息的情况,登陆管理界面发现三个节点中有一个节点宕机挂掉了。 Kafka 的多副本冗余设计 不管是传统的基于关系型数据库设计的系统,还是分布式的如 Zookeeper、Redis、Kafka、HDFS 等等,实现高可用的办法通常是采用冗余设计,通过冗余来解决节点宕机不可用问题 解决问题 绕了一大圈,了解了 Kafka 的高可用机制,终于回到我们一开始的问题本身,Kafka 的一个节点宕机后为什么不可用?

    1.3K20发布于 2020-10-10
  • 来自专栏函数式编程语言及工具

    alpakka-kafka(8)-kafka数据消费模式实现

    上篇介绍了kafka at-least-once消费模式。 kafka消费模式以commit-offset的时间节点代表不同的消费模式,分别是:at-least-once, at-most-once, exactly-once。 上篇介绍的at-least-once消费模式是通过kafka自身的auto-commit实现的。 事后想了想,这个应该算是at-most-once模式,因为消费过程不会影响auto-commit,kafka在每个设定的间隔都会自动进行offset-commit。 这也意味着这个exactly-once消费模式必须在一个提供事务处理功能的数据库系统里实现,也代表kafka-offset必须和其它交易数据一起存放在同一种数据库里。

    74410发布于 2021-08-19
  • 来自专栏大数据成长之路

    快速入门Kafka系列(8)——Kafka监控及运维

    ---- Kafka监控及运维 在开发工作中,消费在Kafka集群中消息,数据变化是我们关注的问题,当业务前提不复杂时,我们可以使用Kafka 命令提供带有Zookeeper客户端工具的工具 Kafka-eagle 概述 为了简化开发者和服务工程师维护Kafka集群的工作有一个监控管理工具,叫做 Kafka-eagle。 修改kafka-eagle配置文件 node01执行以下命令修改kafka-eagle配置文件 cd /export/servers/kafka-eagle-bin-1.3.2/kafka-eagle-web useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull #kafka.eagle.username=root /servers/kafka-eagle-bin-1.3.2/kafka-eagle-web-1.3.2/db/ke.db kafka.eagle.username=root kafka.eagle.password

    59740发布于 2021-01-27
  • 来自专栏不温卜火

    Kafka快速入门系列(8) | Kafka的消费过程分析

    kafka提供了两套consumer API:高级Consumer API和低级Consumer API。 1. 对于Kafka而言,pull模式更合适,它可简化broker的设计,consumer可自主控制消费消息的速率,同时consumer可以自己控制消费方式——即可批量消费也可逐条消费,同时还能选择不同的提交方式从而实现不同的传输语义 pull模式不足之处是,如果kafka没有数据,消费者可能会陷入循环中,一直等待数据到达。 Kafka有两种分配策略,一是roundrobin,一是range。 1. roundrobin ? ? 2. range ? ?   本次的分享就到这里了

    55510发布于 2020-10-28
  • 来自专栏全栈程序员必看

    java检测tomcat宕机_Tomcat意外宕机分析

    之前在网上看过一篇文章,是讲Tomcat进程意外退出的,我看完感觉好奇,自己也测试了下,果然是有这种问题,所以自己也借此总结一下。

    1.9K10编辑于 2022-09-14
  • 来自专栏CNCF

    K8s中优雅停机和零宕机部署

    K8sMeetup Kubelet kubelet 的工作是轮询控制平面以获取更新。 K8sMeetup 在 Kubernetes 中使用 endpoint endpoint 被 Kubernetes 中的多个组件所使用。 K8sMeetup 删除 Pod 删除 Pod 时,我们要遵循上文相同的步骤,不过是相反的。 K8sMeetup 优雅停机 当 Pod 在 kube-proxy 或 Ingress 控制器删除之前终止,我们可能会遇到停机时间。 原文地址:https://learnk8s.io/graceful-shutdown 文章转载自K8sMeetup社区。

    4.3K10发布于 2020-08-20
  • 来自专栏yukong的小专栏

    k8s部署Kafka集群

    前言 本次的目的是通过使用k8s搭建一个三节点的kafka集群,因为kafka集群需要用到存储,所以我们需要准备三个持久卷(Persistent Volume) 简称就是PV。 yaml创建kafka-pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: k8s-pv-kafka01 namespace persistentVolumeReclaimPolicy: Recycle --- apiVersion: v1 kind: PersistentVolume metadata: name: k8s-pv-kafka02 persistentVolumeReclaimPolicy: Recycle --- apiVersion: v1 kind: PersistentVolume metadata: name: k8s-pv-kafka03 imagePullPolicy: IfNotPresent image: registry.cn-hangzhou.aliyuncs.com/jaxzhai/k8skafka

    4.5K20发布于 2020-07-28
  • 来自专栏Java技术栈

    Kafka 宣布弃用 Java 8。。

    Kafka 3.0.0 发布了: 主要更新如下: The deprecation of support for Java 8 and Scala 2.12 Kafka Raft support for 在 Kafka 3.0.0 中,Kafka 项目中的所有组件都已弃用对 Java 8、Scala 2.12 的支持,宣布弃用,但 3.0.0 还能用,这次宣布只是给用户一个调整的时间,到了 Kafka 其实,其他一些中间件也早有停止对 Java 8 的支持,选择 Java 11 作为最低支持版本,但  Kafka,这可能是自 Java 17 发布以来,也就是近半月时间,官宣弃用 Java 8 打响的第一枪 Kafka 目前支持的 Java 版本如下: 从官网看,Kafka 目前支持两个 LTS 版本( Java 8 和 Java 11) 如果启用 TLS,那么 Java 11 的性能将得到显著提升,所以官方也强烈推荐大家使用 在多个 Java 版本上进行开发、编译和测试,对于 Kafka 团队来说肯定是一笔不小的维护成本,所以,Kafka 还有什么理由继续保留 Java 8 呢?

    1.2K30编辑于 2022-03-03
  • 来自专栏数据开发笔记

    mysql宕机日记

    今天博客突然打不开,一看需要连接数据库的网站都挂了,静态网站没挂,猜测是数据库问题。

    1.3K21编辑于 2022-01-17
  • 来自专栏我的小碗汤

    实验理解 K8S 滚动更新时如何实现零宕机

    如果我们没有在 k8s 上运行的应用程序考虑正常关闭,它可能会在滚动更新期间立即返回 502 错误(Bad Gateway)。 首先,我将简要说明滚动更新开始后旧 pod 将如何终止。 我通过 minikube 创建了一个本地 k8s 集群,并使用vegeta[2] 向我的应用程序发送 HTTP 请求。您可以在Gist[3] 上查看 k8s 清单文件和 Dockerfile 。 出处:https://dev.to/yutaroyamanaka/understand-how-graceful-shutdown-can-achieve-zero-downtime-during-k8s-rolling-update

    1.1K30编辑于 2023-08-08
  • 来自专栏kafka专栏

    8.【kafka运维】kafka-dump-log.sh数据查看

    日常运维 问题排查 怎么能够少了滴滴开源的 滴滴开源LogiKM一站式Kafka监控与管控平台 1.查看日志文件 kafka-dump-log.sh 参数 描述 例子 --deep-iteration 这类应实现kafka.serializer。解码器特性。 Custom jar should be available in kafka/libs directory. (default: kafka.serializer. 查询Log文件 sh bin/kafka-dump-log.sh --files kafka-logs-0/test2-0/00000000000000000300.log 查询Log文件具体信息 查询index文件具体信息 sh bin/kafka-dump-log.sh --files kafka-logs-0/test2-0/00000000000000000300.index

    1.2K10编辑于 2022-04-13
  • 来自专栏云头条

    AWS 再次宕机

    太平洋标准时间上午8点10分:AWS表示影响US-WEST-1和US-WEST-2这两个区域的故障背后的问题已得到解决。 我们已经解决了影响通向US-WEST-1区域的互联网连接的问题。

    1.2K10编辑于 2022-03-18
  • 来自专栏全栈程序员必看

    【致远FAQ】致远OA宕机之Tomcat异常宕机

    停机的时间,如图3所示: 4)对比tomcat停机的时间,查看操作系统的日志/var/log/messages在15:32:28相关日志内容,如图4所示,可以得出以下信息: 5)tomcat宕机 8)我们知道,tomcat在以下两种情况下会触发shutdownhook:(1)代码里面执行了System.exit;(2)tomcat进程接收到了除9以外的会引起退出的信号量;我们对第一种情况进行了代码扫描并逐一的排除 收到SIGHUP信号后,会激活SIGHUP handler线程(如图6所示);该线程会触发Tomcat的shutdownhook函数(如图7所示),在该函数中会执行tomcat退出时的资源销毁操作(如图8所示 ): 图6 jstack堆栈快照 图7 jstack堆栈快照 图8 ctp.log日志片段 修改与建议 该问题的解决,也能解释之前项目现场其他环境下没有异常日志生成,却出现了 tomcat异常宕机的情况。

    1.9K30编辑于 2022-09-15
  • 来自专栏大数据-BigData

    k8s快速部署kafka 3.3.1

    在平常开发测试中,使用docker或者k8s快速部署某个组件会是一个不错的选择。 kafka 3.3.1作为kraft第一个生产可用版本,本文介绍使用k8s快速部署基于kraft运行的kafka 3.3.1。 server.properties start-kafka.sh Dockerfile 为了在外网环境可以访问k8s中的kafka,需要对server.properties配置文件进行如下修改: # Licensed 设置为kafka,同时也在配置文件里面将hostname设置为kafka,所以我们在使用客户端进行连接是,需要配置本地hosts,将kafka配置为k8s节点IP package com.zh.ch.bigdata.examples.kafka claimName: kafka-pvc 查看nfs路径可以看到持久化目录 总结 k8s快速部署应用进行测试是一个不错的选择,本文从头概述了如何构建kafka镜像以及在k8s上快速部署。

    4.9K21编辑于 2022-12-01
  • 来自专栏FHADMIN

    Redis宕机 快速恢复

    /sentinel.conf 由上图可以看到: 哨兵已经启动,它的id为9059917216012421e8e89a4aa02f15b75346d2b7 为master数据库添加了一个监控 发现了2个 slave(由此可以看出,哨兵无需配置slave,只需要指定master,哨兵会自动发现slave) 5、从宕机及恢复 kill掉2826进程后,30秒后哨兵的控制台输出: 2989:X 05 Jun 20:09:33.509 # +sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ taotaoMaster 127.0.0.1 6379 说明已经监控到slave宕机了 服务已经宕机 2989:X 05 Jun 20:16:50.300 # +odown master taotaoMaster 127.0.0.1 6379 #quorum 1/1 2989:X 05 taotaoMaster 127.0.0.1 6379 开始恢复故障 2989:X 05 Jun 20:16:50.304 # +vote-for-leader 9059917216012421e8e89a4aa02f15b75346d2b7

    1K20发布于 2021-08-02
  • 来自专栏kafka专栏

    8.【kafka运维】kafka-dump-log.sh消费者组管理

    日常运维 问题排查 怎么能够少了滴滴开源的 滴滴开源LogiKM一站式Kafka监控与管控平台 1.查看日志文件 kafka-dump-log.sh 参数 描述 例子 --deep-iteration 这类应实现kafka.serializer。解码器特性。 Custom jar should be available in kafka/libs directory. (default: kafka.serializer. 查询Log文件 sh bin/kafka-dump-log.sh --files kafka-logs-0/test2-0/00000000000000000300.log ? ---- 欢迎 Star和 共建由 滴滴开源的kafka的管理平台,非常优秀非常好用的一款kafka管理平台 满足所有开发运维日常需求 滴滴开源Logi-KafkaManager 一站式Kafka

    59250发布于 2021-08-19
  • 来自专栏全栈程序员必看

    k8s部署kafka集群「建议收藏」

    k8s以StatefulSet方式部署kafka集群: kafka-namespace.yaml apiVersion: v1 kind: Namespace metadata: name: kafka =kafka \ KAFKA_DATA_DIR=/var/lib/kafka/data \ JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ =WARN, stdout log4j.additivity.kafka.authorizer.logger=false docker build -t k8s-kafka:latest . ---- image: k8s-kafka:latest imagePullPolicy: IfNotPresent resources: requests k8s部署kafka集群完成。

    2.9K42编辑于 2022-09-02
领券