Kafka
文章平均质量分 67
解耦、异步、削峰。
洒家肉山大魔王
学习是一辈子的事情,去身上的戾气也是一辈子的修炼。
展开
-
Kafka_2.13-3.4.0环境的配置
省略...原创 2023-06-27 17:07:57 · 1220 阅读 · 0 评论 -
Kafka宕机后不再高可用?探究Kafka高可用实现
问题要从一次Kafka的宕机开始说起。笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的RabbitMQ,而是采用了设计之初就为日志处理而生的Kafka,所以我一直很好奇Kafka的高可用实现和保障。从Kafka部署后,系统内部使用的Kafka一直运行稳定,没有出现不可用的情况。但最近系统测试人员常反馈偶有Kafka消费者收不到消息的情况,登陆管理界面发现三个节点中有一个节点宕机挂掉了。但是按照高可用的理念,三个节点还有两个节点可用怎么就引起了整个集群的消费者都接收不到消息呢?转载 2023-05-23 16:34:39 · 331 阅读 · 1 评论 -
解决:“/****/kafka_2.13-3.0.0/bin/kafka-run-class.sh: line 342: exec: java: not found ”问题
问题:启动zookeeper失败,查看状态日志,如下图:解决kafka运行依赖java环境,而本机已安装java环境查看java环境变量查看kafka环境变量回到问题本身,我们看一下kafka-run-class.sh脚本的342行内容:这里网上搜了很久,获悉kafka默认引用的java路径:/user/bin/java,这个与我们实际配置的java的环境变量$JAVA_HOME/bin路径不一致。这里,借鉴一下前辈的办法:修改java环境变量配置(.原创 2022-03-10 21:16:13 · 3920 阅读 · 1 评论 -
设置kafka_2.13-3.0.0开机自启动
1.设置zookeeper开机启动kafka_2.13-3.0.0自带的zookeeper,这里我们先创建zookeeper启动脚本:[root@node02~]# mkdir /etc/cluster/[root@node02~]# touch zookeeper.service1.1 zookeeper.service[Unit]Description=zookeeper [Service]ExecStart=/root/kafka/kafka_2.13-3.0.0/bi.原创 2022-03-10 21:02:59 · 3049 阅读 · 0 评论 -
关于消息队列的一些问题
本文简单总结一下消息队列相关的一些问题,仅供参考和基础巩固:什么是消息队列? 消息队列的应用场景? 消息队列如何解决消息丢失问题? 消息队列如何保证消息的顺序性? 消息队列有可能发生重复消费吗?如何幂等处理? 如何处理消息队列的消息积压问题? 消息队列技术选型,Kafka还是RocketMQ,还是RabbitMQ? 消息中间件如何做到高可用? 如何保证数据一致性?事务消息如何实现? 如果让你写一个消息队列,该如何进行架构设计?1. 什么是消息队列你可以把消息队列理解为一个使用队列转载 2022-03-06 21:47:26 · 305 阅读 · 0 评论 -
如何保证kafka消息的可靠性传递?
如何保证消息的可靠性传输?即传递的数据不能多一条,也不能少一条。不能多,也就是消息消费的重复性和幂等性问题。不能少,也是说数据不能弄丢了。也就是如何处理消息丢失的问题?消费端弄丢数据唯一可能导致消费者弄丢数据的情况,就是说,你消费到了这个消息,然后消费者那边自动提交了 offset,让 Kafka 以为你已经消费好了这个消息,但其实你才刚准备处理这个消息,你还没处理,你自己就挂了,此时这条消息就丢咯。这不是跟 RabbitMQ 差不多吗,大家都知道 Kafka 会自动提交 offset,转载 2022-03-05 22:19:49 · 368 阅读 · 0 评论 -
10分钟体验一把Kafka[测试用例]
将编写Java程序,将数字消息写入到Kafka中。1.pom依赖 <dependencies> <!-- kafka客户端 --> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> .原创 2022-03-05 20:13:25 · 1299 阅读 · 0 评论 -
解决:关于启动Kafka一段时间后,进程自己停止运行的问题
问题:启动kafka后进程过一段时间后,发现后台只有zookeeper进程在运行,kafka进程自己停止运行。解决:1-关于zookeeper和kafka的启动顺序因为kafka依赖与zookeeper,关于kafka和zookeeper的启动顺序:启动kafka时:先启动zookeeper,保证zookeeper服务正常后,后再启动Kafka。 关闭Kafka时:先关闭kafka,再关闭zookeeper。保证启动和停止无误后,如果kafka启动后,kafka进程过一段时间后原创 2022-03-05 15:40:22 · 6180 阅读 · 0 评论 -
nohup: redirecting stderr to stdout
叫zookeeper和kafka启动过程记录到各自对应的日志文件中,这个会丢失日志记录,有些报错信息看不到。原创 2022-03-05 14:40:28 · 5848 阅读 · 0 评论 -
CentOS 7.6环境安装kafka_2.13-3.0.0[单机版]
本节内容主要总结一下如何在CentOS 7.6上安装kafka 2.13-3.0.0注意:此单机版使用的是kafka自带的zookeeper1.组件版本组件 版本 CentOS 7.6 JDK 1.8.0_221 kafka 2.13-3.0.0 2.环境设置Init-env.sh脚本:#!/bin/bash echo "----------------关闭selinux-----------------"...原创 2022-03-05 14:30:22 · 2263 阅读 · 1 评论 -
如何保证消息不被重复消费【[如何保证消息消费的幂等性】?
如何保证消息消费的幂等性?或者说,如何保证消息不被重复消费?既然是消费消息,那肯定要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是 MQ 领域的基本问题,其实本质上还是使用消息队列如何保证幂等性。剖析可能出现的重复消费问题首先,比如 RabbitMQ、RocketMQ、Kafka,都有可能会出现消息重复消费的问题,正常。因为这问题通常不是 MQ 自己保证的,是由我们开发来保证的。挑一个 Kafka 来举个例子,说说怎么重复消费吧。Kafka 实际上有转载 2022-03-03 07:39:05 · 126 阅读 · 0 评论 -
消息队列常见的使用场景
消息队列常见的使用场景其实有很多,但是比较核心的有 3 个:解耦、异步、削峰。解耦看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃......在这个场景中,A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。A 系统要时时刻刻考虑 BCDE 四个系统如果挂了该咋办?要不要重发,要不要把消息存起来?头发都白了啊!如果使用转载 2022-03-01 22:10:05 · 11201 阅读 · 2 评论