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

    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
  • 来自专栏EdisonTalk

    Kafka入门实战教程(7):Kafka Streams

    目前Kafka Streams只支持与Kafka集群进行交互,它并没有提供开箱即用的外部数据源连接器。 而在设计上,Kafka Streams在底层大量使用了Kafka事务机制和幂等性Producer来实现多分区的写入,又因为它只能读写Kafka,因此Kafka Streams很easy地就实现了端到端的 3 Kafka Streams客户端 目前.NET圈主流的Kafka客户端Confluent.Kafka并没有提供Streams的功能,其实,目前Kafka Streams也只在Java客户端提供了Streams 实际上,有的,我在Confluent.Kafka的issue内容中找到了下面这个Kafka Streams客户端:Streamiz.Kafka.Net。 Streamiz.Kafka.Net; using Streamiz.Kafka.Net.SerDes; using Streamiz.Kafka.Net.Stream; using Streamiz.Kafka.Net.Table

    5.2K30编辑于 2022-09-09
  • 来自专栏悠扬前奏的博客

    Kafka-7.设计

    4.1 动机 Kafka设计的目的是为能作为一个统一的平台来处理大公司可能有的实时数据流。为此,需要考虑相当广泛的用例。 它必须有高吞吐量来支持高容量事件流,例如实时日志聚合。 4.2 Persistence 不要害怕文件系统 Kafka在很大程度上依赖文件系统来存储和缓存消息。通常大家认为“磁盘很慢”,这让人们怀疑持久性的结构能否提供有竞争力的性能。 例如,在Kafka中,我们可以在消费者消费后立即删除消息,而不是试图将消息保留一段相对较长的时间(例如一周)。正如我们将要描述的那样,这为消费者带来了极大的灵活性。

    65820发布于 2019-06-11
  • 来自专栏开源部署

    RHEL 7上Oracle 莫名宕机 ORA-27300

    failure message: Identifier removed ORA-27302: failure occurred at: sskgpwwait1 数据库版本11.2.0.4,操作系统版本:rhel 7 检查操作系统日志,定时任务日志并无异常; 原因: On RedHat 7.x, systemd-logind service introduced a new feature to remove all 在 RHEL 7.x的版本里,systemd-logind 服务控制着用户的行为,当用户退出,会清理该用户的所有内存段.那么定时任务的数据泵就有问题了,调用的内存段是oracle的; 查看removeipc

    62610编辑于 2022-08-17
  • 来自专栏沁溪源

    kafka系列】centos7系统安装kafka

    :mv kafka_2.11-2.2.0 kafka 创建logs文件,用于存储kafka日志: 在kafka安装目录下创建:mkdir kafka-logs /opt/software/kafka 默认3000ms #log.flush.interval.ms=1000 # 日志保存时间 (hours|minutes),默认为7天(168小时)。超过这个时间会根据policy处理数据。 安装根目录下执行; 2.启动kafka服务 以下方式任选其一 kafka目录启动 使用kafka-server-start.sh 启动kafka 服务: bin/kafka-server-start.sh localhost:9092 --topic test --from-beginning 7.查看描述 Topic 信息 bin/kafka-topics.sh --describe --zookeeper 8.删除topic bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test 参考资源: 1.在CentOS 7上安装

    2.3K30发布于 2021-09-28
  • 来自专栏业余草

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

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

    1.3K20发布于 2020-10-10
  • 来自专栏JavaEdge

    Kafka实战(7)-究竟该如何部署Kafka集群?

    看一些考虑因素(以下顺序,可是分了顺序的哦) 1 OS Kafka不是JVM上的中间件吗?Java又是跨平台语言,把Kafka安装到不同的os有啥区别吗? 区别相当大! 1.2 数据网络传输效率 Kafka生产和消费的消息都是通过网络传输,但消息保存在哪呢? 肯定是磁盘! 故Kafka需在磁盘和网络间进行大量数据传输。 在Linux部署Kafka能够享受到零拷贝技术带来的快速数据传输特性。 1.3 社区生态 社区对Windows平台上发现的Kafka Bug不做任何承诺。 计算 带宽1Gbps,即每秒处理1Gb数据 假设每台Kafka服务器都是安装在专属机器,即每台Kafka机器上没有混入其他服务 通常情况下你只能假设Kafka会用到70%的带宽资源,因为总要为其他应用或进程留一些资源 总结 部署Kafka环境,一开始就要思考好实际场景下业务所需的集群环境,不能仅从单个维度上进行评估。 参考 Linux内核模型架构 Kafka核心技术与实战

    1.1K20编辑于 2021-12-10
  • 来自专栏后台及大数据开发

    CentOS7 kafka安装

    cd /opt 下载对应的kafka https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/ tar -xvf kafka_2.12-2.2.1.tgz - /kafka-server-start.sh -daemon .. /run/kafka.pid ExecStart=/opt/kafka_2.12-2.2.1/bin/kafka-server-start.sh .. /bin/bash find /opt/kafka_2.12-2.2.1/logs/ -type f -mtime +7|xargs rm -rf EOF chmod +x /opt/kafka_2.12 -2.2.1/bin/clean_kafka_logs.sh 执行crontab -e,加入一行 0 0 * * * /bin/bash /opt/kafka_2.12-2.2.1/bin/clean_kafka_logs.sh

    1K11发布于 2020-08-06
  • 来自专栏JavaEdge

    Kafka实战(7)-究竟该如何部署Kafka集群?

    1.2 网络传输效率 Kafka生产和消费的消息都通过网络传输,但消息保存在磁盘。故Kafka需在磁盘、网络间进行大量数据传输。在Linux部署Kafka能享受到零拷贝技术带来的快速数据传输特性。 Kafka需将消息保存在磁盘,这些消息默认会被保存一段时间,然后自动被删除。 虽然这段时间可配置,但应如何结合自身业务场景和存储需求来规划Kafka集群的存储容量? 假设业务 每天向Kafka集群发送1亿条消息 每条消息保存两份,以防止数据丢失 消息默认保存两周时间 假设消息平均1KB,那Kafka集群需要为这个业务预留多少磁盘空间? 需多少台Kafka服务器完成这业务? 计算 带宽1Gbps,即每秒处理1Gb数据 假设每台Kafka服务器都是安装在专属机器,即每台Kafka机器上没有混入其他服务。 4 总结 部署Kafka环境,一开始就要思考好实际场景下业务所需的集群环境,不能仅从单个维度上进行评估。 参考 Linux内核模型架构 Kafka核心技术与实战

    56630编辑于 2022-11-30
  • 来自专栏函数式编程语言及工具

    alpakka-kafka(7)-kafka应用案例,消费模式

    这个库存管理平台是一个Kafka消费端独立运行的软件。kafka的生产方即平台的服务对象通过kafka生产端producer从四面八方同时、集中将消息写入kafka。 库存管理平台在kafka消费端不间断监控kafka里新的未读过的消息并及时读取,解析消息获取发布者对库存管理的指令,然后按指令更新库存状态。 不过通过kafka把并发产生的指令转换成队列然后按顺序单线程逐句执行就能解决主要问题了。现在,平台的数据来源变成kafka消费端口上的一个数据流了,数据的读取和消费自然也变成了逐条的。 具体读取位置offset可以存放在kafka内部,或者保存在某种数据库表里。 at-least-once可以利用kafka的自动commit机制实现offset保存,只要通过kafka配置就可以了。

    60120发布于 2021-08-19
  • 来自专栏kafka专栏

    kafka问答100例 -7》如果Topic删除过程中有某台Broker宕机,删除流程会正常进行吗 ?

    如果Topic删除过程中有某台Broker宕机,删除流程会正常进行吗 ? 删除Topic的过程中,跟这个Topic有关的Broker都会开始执行删除操作, 如果其中某台Broker宕机或者副本下线(副本由于某些原因不可读写了) 了,那么这台Broker删除流程受阻并不会影响其他

    30530编辑于 2022-09-07
  • 来自专栏kafka专栏

    kafka问答100例 -7》如果Topic删除过程中有某台Broker宕机,删除流程会正常进行吗 ?

    如果Topic删除过程中有某台Broker宕机,删除流程会正常进行吗 ? 删除Topic的过程中,跟这个Topic有关的Broker都会开始执行删除操作, 如果其中某台Broker宕机或者副本下线(副本由于某些原因不可读写了) 了,那么这台Broker删除流程受阻并不会影响其他

    35320编辑于 2021-12-31
  • 来自专栏kafka专栏

    kafka问答100例 -7》如果Topic删除过程中有某台Broker宕机,删除流程会正常进行吗 ?

    如果Topic删除过程中有某台Broker宕机,删除流程会正常进行吗 ? 删除Topic的过程中,跟这个Topic有关的Broker都会开始执行删除操作, 如果其中某台Broker宕机或者副本下线(副本由于某些原因不可读写了) 了,那么这台Broker删除流程受阻并不会影响其他

    32740发布于 2021-10-08
  • 来自专栏小工匠聊架构

    Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群

    ---- 概述 对于kafka来说,一个单独的broker意味着kafka集群中只有一个节点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。 单个节点的安装: Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_2.11‐1.1.0 这里我们来搭建个3个节点的kafka集群来体验下吧 ---- 部署信息 192.168.18.130 —> kafka 、 zookeeper(单节点的zk) 192.168.18.131 —> kafka 192.168.18.132 —> kafka 单节点的 zk , 部署上 130上,事实上生产环境的话 3个节点的kafka注册到 单节点的zk上。 现在我们向新建的 artisan-replicated-topic 中发送一些message,kafka集群可以加上所有kafka节点: [root@artisan bin]# .

    63050发布于 2021-08-17
  • 来自专栏北溟有鱼QAQ

    Centos7下安装kafka

    Centos7下安装kafka单机版 项目中要用到kafka来做消息队列,然而本人是小白一枚,所以从零开始,尝试着安装并搭建好kafka测试环境 安装java的JDk 首先要使用命令 java -version 下载kafka 官网 执行 wgethttp://mirror.bit.edu.cn/apache/kafka/2.4.0/kafka-2.4.0-src.tgz 解压 tar -zxvf kafka-2.4.0-src.tgz cd到解压目录并修改配置文件 vim config/server.properties ? 使用kafka-server-start.sh启动kafka服务:bin/kafka-server-start.sh config/server.properties 守护进程模式启动 bin /kafka-server-start.sh -daemon config/server.properties 查看端口号是否监听 zookeeper的端口号为:2181,消费者需要监听的端口 kafka

    1.9K30发布于 2019-12-24
  • 来自专栏全栈程序员必看

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

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

    1.9K10编辑于 2022-09-14
  • 来自专栏全栈程序员必看

    centos7kafka集群搭建

    Kafka本身安装包也自带了zookeeper,也可以使用其自带的zookeeper。建议试用自己安装的zookeeper,本教程试用单独安装的zookeeper。 安装环境 3台centos7虚拟机:10.15.21.62 10.10.182.168 10.10.182.169 kafka_2.10-0.10.2.0 zookeeper-3.4.9 jdk http://mirror.bit.edu.cn/apache/kafka/0.10.2.0/kafka_2.10-0.10.2.0.tgz Zookeeper集群搭建 修改配置文件 cd / /zkServer.sh status Kafka集群搭建 修改配置文件 cd /opt/kafka/kafka_2.10-0.10.2.0/config/ vi server.config # The 集群并测试 在集群每个主机内执行: cd /opt/kafka/kafka_2.10-0.10.2.0/bin/ .

    79610编辑于 2022-09-05
  • 来自专栏全栈程序员必看

    CentOS7 安装 kafka「建议收藏」

    官网:http://kafka.apache.org/downloads #wget http://101.34.22.188/kafka/kafka_2.12-2.8.0.tgz -P /data tar xf /data/kafka_2.12-2.8.0.tgz 修改配置 cd /data/kafka_2.12-2.8.0 vim /data/kafka_2.12-2.8.0/config 1个分区数 num.partitions=1 //每个数据目录用来日志恢复的线程数目 num.recovery.threads.per.data.dir=1 //默认消息的最大持久化时间,168小时,7天 nohup /data/kafka_2.12-2.8.0/bin/kafka-server-start.sh /data/kafka_2.12-2.8.0/config/server.properties /kafka-server-start.sh /data/kafka_2.12-2.8.0/config/server.properties ExecStop=/data/kafka_2.12-2.8.0

    1.3K20编辑于 2022-09-06
领券