字母哥哥
百人团队技术经理。2017年度吉林省软件行业协会“最卓越程序员奖”获得者。曾就职于微软,微软MVP。华为云享专家。
展开
-
【kafka专栏】目录篇-入门到精通的修炼之道
本专栏主要是面向kafka开发者,介绍kafka的概念、架构、核心原理,并重点介绍开发方法。特点是:系统化、完整的向读者介绍面向kafka的开发体系!原创 2022-05-17 07:23:46 · 870 阅读 · 2 评论 -
【kafka专栏】消息队列与快递柜之间妙不可言的关系(带视频)
提到消息队列可能一些朋友经常听别人说起一些名词,比如:服务程序解耦,处理流量削峰,通过异步处理提升用户体验,缓冲批处理提高处理性能。笔者擅于白话解说,所以我就不用专业的术语去解释专业的问题了。我一直觉得消息队列的功能和快递柜的功能非常相似,怎么个相似法呢?让我来详细给你说说。原创 2022-04-22 12:03:58 · 2197 阅读 · 41 评论 -
【kafka专栏】消息队列通用消息传递模型(带视频)
两种消费模型及消费者组模式讲解:Point-to-Point(P2P),一条消息由一个消费者消费;Publish/Subscribe(Pub/Sub),一条消息被多个消费者消费。原创 2022-04-25 15:06:25 · 2805 阅读 · 3 评论 -
【kafka专栏】典型应用场景之用户订单处理(含视频)
如何用消息队列实现异步解耦操作:用户下单之后,应用程序通常会做如下的一些操作:订单管理:为用户生成订单;库存管理:商品库存减1;积分管理:为用户增加积分。原创 2022-04-25 15:17:09 · 1346 阅读 · 2 评论 -
【kafka专栏】如何做以消息队列为核心的应用程序开发(含视频)
有的时候我们会遇到这样一种情况,某个数据记录存储到数据库之后,需要反复的查询统计。会造成一种局面:某个数据库既要承担高并发的实时数据处理,又要承担耗费资源较多的离线数据分析。如何实用消息队列解决数据库的压力,我们来看下。原创 2022-04-25 15:24:42 · 2121 阅读 · 2 评论 -
【kafka专栏】针对kafka的简单介绍
Kafka 是由Linkedin公司开发的一款开源的用于实时流式数据处理的平台,也可以说是一款具有分布式、多分区、多副本、多生产者及消费者的消息队列中间件。原创 2022-04-25 15:32:45 · 2684 阅读 · 1 评论 -
【kafka专栏】核心概念篇-broker、主题、分区、消费者组、分区副本
本节为大家介绍一下kafka的一些基础概念,这些概念将在后续的学习中不断的被提到,所以有必要清晰明了。**本节内容是应用kafka消息队列最核心的理论知识内容,初学者请务必研读揣摩。** 第一遍读不懂往后学一学,再回来都这一篇文章,总之反复揣摩,这篇是kafka的理论知识核心。原创 2022-04-25 15:53:59 · 2806 阅读 · 14 评论 -
【kafka专栏】使用shell脚本快速搭建kafka单机版(含视频)
提供给大家一个快速搭建方式,讲解搭建一个kafka的单机版的过程,方便大家用于学习使用。原创 2022-05-11 05:21:58 · 678 阅读 · 1 评论 -
【kafka专栏】kafka3.0版本不再需要zookeeper,替代方案是什么?
在2.8版本之前,kafka都是强依赖zookeeper这个分布式服务协调管理工具的。在kafka2.8版本开始尝试从服务架构中去掉zookeeper,到了3.0版本这个工作基本上完成,这是kafka的一个非常重要的里程碑。如果想要理解kafka3.0的新架构设计,实际上我们还是有必要理解kafka2.x版本中中zookeeper的作用是什么?为什么要在3.0版本中去掉?使用什么技术代替了kafka?原创 2022-05-13 09:22:42 · 7719 阅读 · 6 评论 -
【kafka专栏】生产级集群搭建之linux安装JDK(含视频)
kafka专栏之生产级集群搭建,linux下安装JDK原创 2022-05-17 08:34:23 · 676 阅读 · 0 评论 -
【kafka专栏】集群生产级安装之linux主机名与ip解析
kafka生产级集群安装之linux主机名与ip解析原创 2022-05-17 08:39:10 · 857 阅读 · 1 评论 -
【kafka专栏】生产级集群安装-新建用户在CentOS与Ubuntu区别
kafka生产级集群安装-新建用户在CentOS和ubuntu系统上有什么区别原创 2022-05-17 08:49:34 · 471 阅读 · 1 评论 -
【kafka专栏】生产级集群安装之防火墙管理
kafka生产级集群安装之防火墙的管理原创 2022-05-17 08:53:13 · 813 阅读 · 0 评论 -
【kafka专栏】生产级集群安装之OS最大打开文件句柄数量配置
生产级集群安装之OS最大打开文件句柄数量配置原创 2022-05-17 09:03:52 · 884 阅读 · 0 评论 -
【kafka专栏】生产级集群安装主机之间ssh免密登录
为了保证一台Linux主机的安全,每个主机登录的时候都需要账号密码。但是很多时候为了操作方便,需要设置集群互信主机之间的SSH免密码登录。原创 2022-05-20 08:27:54 · 904 阅读 · 4 评论 -
【kafka专栏】使用shell脚本一键安装zookeeper集群
zookeeper通常作为分布式服务的服务注册与配置管理中心存在,作为分布式系统的协调统一配置工具存在。为保证zookeeper的高可用,通常需要将zookeeper搭建为集群。原创 2022-05-30 07:19:24 · 674 阅读 · 0 评论 -
【kafka专栏】使用shell脚本快速安装kafka集群(含视频)
我们本节来正式安装kafka集群,安装kafka集群主要的方式有两种:一种是纯手动安装,一种是使用自动化shell脚本安装。纯手动安装的方式需要一台服务器、一台服务器的去操作,在服务器较多的情况下工作量很大。使用shell脚本一次性安装的方式,就显得非常有必要了,这两种方法本文都会介绍。原创 2022-06-02 08:28:29 · 672 阅读 · 1 评论 -
【kafka专栏】不用zookeeper怎么安装kafka集群-最新kafka3.0版本
在kafka3.0中已经可以将zookeeper去掉,kafka集群不再必须依赖zookeeper,这为运维强度的下降提供了非常多的帮助。本文为大家介绍kafka3.0,不用zookeeper如何进行集群的安装。原创 2022-06-22 07:14:56 · 3757 阅读 · 74 评论 -
【kafka专栏】kafka集群可用性验证与配置-为主题增加分区数
在专栏前面的文章中,我们已经为大家介绍了kafka2.0和kafka 3.0(无需zookeeper)的安装方式,两种安装方式虽然发生了变化,但是在安装完成之后,面向开发人员几乎是没有变化的。所以验证集群的可用性方法也是一样的,本节可以通用。...原创 2022-06-23 16:56:04 · 1256 阅读 · 2 评论 -
【kafka专栏】服务端副本可靠性原理及配置(含视频)
kafka要保证消息的生产消费可靠性,需要从三个方面进行管理,一是kafka集群服务端,二是kafka生产者客户端,三是kafka消费者客户端。只有这三个方面都保证可靠性,才能实现消息不重复、不漏掉!本文主要从kafka集群broker客户端的角度说明可靠性及其相关配置。.........原创 2022-06-08 08:32:07 · 767 阅读 · 27 评论 -
【kafka专栏】生产者数据批量发送流程源码解析
kafka生产者数据发送流程源码解析原创 2022-05-15 08:56:21 · 2906 阅读 · 60 评论 -
【kafka专栏】如何保证数据生产不重不漏的高可靠性
kafka要保证消息的生产消费可靠性,需要从三个方面进行管理,一是kafka集群服务端,二是kafka生产者客户端,三是kafka消费者客户端。只有这三个方面都保证可靠性,才能实现消息不重复、不漏掉!本文主要从kafka生产者客户端的角度说明可靠性及其相关配置,关于其他两个方面请关注本专栏!......原创 2022-06-14 08:26:29 · 875 阅读 · 2 评论 -
【kafka专栏】如何保证消息数据的有序性?
本文内容主要是说明kafka如何保证消息的有序性?原创 2022-06-16 08:08:19 · 1568 阅读 · 19 评论 -
【kafka专栏】生产者同步及异步发送数据三种方式
apache kafka生产者客户端三种同步及异步发送数据的方式原创 2022-06-19 15:21:40 · 8976 阅读 · 56 评论 -
【kafka专栏】自定义生产者客户端拦截器-实现消息发送成功率统计
kafka生产者的数据生产流程中,有三个环节是我们可以自定义的,如下图所示。本文为大家介绍如何自定义kafka生产者拦截器。原创 2022-06-30 06:19:23 · 569 阅读 · 2 评论 -
【kafka专栏】生产者客户端自定义序列化器
kafka生产者的数据生产流程中,有三个环节是我们可以自定义的,如下图所示。本文为大家介绍如何自定义kafka生产者序列化器。原创 2022-07-01 16:40:13 · 669 阅读 · 1 评论 -
【kafka专栏】生产者客户端自定义分区器实现向指定分区发送消息
kafka生产者的数据生产流程中,有三个环节是我们可以自定义的,如下图所示。本文为大家介绍如何自定义kafka生产者分区器。原创 2022-07-02 18:34:36 · 1145 阅读 · 0 评论 -
【kafka专栏】如何实现事务以及发送失败重试消息的幂等性
exactly once(一批数据发送成功一次,并且只成功一次)。在0.11.0.0版本之前这是做不到的,在0.11.0.0版本之后kafka引入了幂等和事务机制,从而可以支持exactly once语义。原创 2022-07-02 19:09:10 · 1219 阅读 · 0 评论 -
【kafka专栏】消费者组数据积压的查看与处理方法
消费者组数据积压的查看与处理方法原创 2022-07-03 19:59:56 · 3074 阅读 · 21 评论 -
【kafka专栏】集成apache kafka-clients实现数据消费者
通过apache kafka的api方式来一步一步的实现kafka消费者原创 2022-07-03 20:13:31 · 892 阅读 · 1 评论 -
【kafka专栏】消费偏移量4种提交方式以及如何避免消费数据丢失与重复消费
kafka消费者客户端,消费偏移量4种提交方式以及如何避免消费数据丢失与重复消费原创 2022-07-05 20:15:04 · 1230 阅读 · 0 评论 -
【kafka专栏】分区再平衡rebalance事前规避以及处理方法
分区再平衡rebalance发生的原因、产生的影响、事前规避以及处理方法原创 2022-07-06 19:30:51 · 781 阅读 · 2 评论 -
【kafka专栏】结合线程池实现apache kafka消费者组
避免一个错误:多线程使用单一消费者;躲开一个误区:多线程就是消费者组;常规正确做法:使用线程池实现消费者组原创 2022-07-06 19:42:47 · 1235 阅读 · 2 评论 -
【kafka专栏】利用消费者拦截器实现计算消息生产到接收的平均延时
实现计算一个批次数据发送到接受的平均延时。* 一个批次数据发送时间会保存在ConsumerRecords的timestamp的时间戳,是在生产者构建消息的时候添加的。* 一个批次数据接收到的时间可以认为是当前时间`System.currentTimeMillis()`...原创 2022-07-07 18:43:06 · 553 阅读 · 0 评论 -
【kafka专栏】消费者客户端自定义反序列化器
反序列化是相对于序列化而言的,对于kafka而言我们举一个例子* 序列化过程:kafka生产者将User对象序列化为JSON格式,进而转成二进制byte[]用于网络传输* 反序列化过程:kafka消费者得到byte[],反序列化为JSON,进而通过JSON得到User对象。...原创 2022-07-07 18:48:14 · 595 阅读 · 0 评论 -
【kafka专栏】SpringBoot整合kafka客户端实现生产消费
如果需要在Spring Boot项目中集成kafka客户端,首先需要引入下面的maven坐标。Spring Boot的版本与kafka对应关系,如:https://spring.io/projects/spring-kafka原创 2022-07-08 19:49:54 · 1474 阅读 · 0 评论 -
【kafka专栏】SpringBoot-kafka同步异步生产数据以及拦截器分区器配置
KafkaTemplate的Send方法,最简单的使用方式就是传递一个Topic名称,传递一条数据使用send方法发送数据。在Spring KafkaTemplate的send()方法还支持其他参数,具体如下:上文介绍的使用send方法的方式,发送之后就不再等待服务端对该消息的确认,如果出现异常生产者客户端不会有任何的感知。为了能够使生产者能够感知到消息是否真的发送成功了.........原创 2022-07-08 19:58:42 · 928 阅读 · 0 评论 -
【kafka专栏】Spring kafka消息发送事务处理
在《幂等与事务处理的》的文章中,我们已经为大家介绍使用apache kafka原生API 如何保证:数据被发送Exactly One,发送一次并且只发送一次,不重发不漏发。幂等性的设置仍然很简单,只需要将生产者客户端参数设置为true即可。本文主要为大家介绍下在SpringBoot环境下结合Spring kafka如何实现幂等性和事务的处理。我们看下面的一段代码,使用向kafka发送数据,但是发送数据之后方法内部抛出了异常。假如我们的代码含义是下面的这样的订单支付未成功,可能用户余额不足,抛出异常。但是向原创 2022-07-09 20:00:16 · 983 阅读 · 0 评论 -
【kafka专栏】SpringBoot下`@KafkaListener`消费监听属性详解
KafkaListener有若干的配置属性,这些配置属性使用或者是结合使用,可以方便快捷的帮助我们实现kafka消费者数据监听的需求。这里的属性比较多,先大概了解一下,后续我会介绍。通常我们会把消费者监听的主题,消费者组名称,消费者组中消费者数量等常用信息做成自定义配置(而不是在代码中写死),如下所示:下面的消费者监听器监听了两个topic:topic-a,topic-b(使用SpEL表达式逗号分割为字符串数组),该消费者组命名为group-demo,包含5个消费者线程并行消费。三、指定Topic分区原创 2022-07-09 20:22:26 · 3978 阅读 · 4 评论 -
【kafka专栏】Spring kafka监听器模式配置自动、手动、单条、批量消费的使用
* Spring Kafka监听器模式(`spring.kafka.listener.type`配置属性)有两种:single - 监听器消息参数是一个对象;batch - 监听器消息参数是一个集合。* 消费者偏移量提交的方式:自动提交、手动提交原创 2022-07-10 17:47:48 · 2747 阅读 · 2 评论