自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 收藏
  • 关注

转载 微服务网关Gateway实践总结

自定义断言,继承类,注意命名以结尾,重写apply方法,即可执行特定的匹配规则;}@Data}@Override}}复制代码自定义过滤,继承类,注意命名以结尾,重写apply方法,即可执行特定的过滤规则;}}复制代码配置加载方式,此处断言与过滤即快捷的配置方式,所以在命名上要遵守Gateway的约定;

2022-09-03 11:14:17 458

转载 Java8中的Stream的汇总和分组操作~它并不难的

在前面的文章中其实大家也已经看到我使用过将数据最后汇总成一个 List 集合。但其实还可以转换成Integer、Map、Set 集合等。

2022-09-03 11:13:13 704

原创 面试常见的 10 大问题

不管是应届生还是社招生,相信你都经历过面试的摧残。面对咄咄逼人的面试官,面对随处可见的问题陷阱。我们应该如何面对,看完这边文章,相信你一定会有收获Q1:请你先自我介绍下回答技巧:回答尽量简短,控制在1-2分钟内,先简单的介绍一下自己,说下自己有什么优点,然后介绍下自己过去的一些实习经历。有经验的求职者要突出自己的工作经验,参与过哪些重要的项目和取得的成就等。回答话术:您好,我是毕业于XX大学XX专业的XXX,很高兴能够参加这次面试。我曾在学校里参加过xxx竞赛,获得x

2022-05-13 17:22:30 706 1

原创 优雅地处理重复请求(并发请求)

对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。重复的场景有可能是: 黑客拦截了请求,重放 前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了 网关重发 …. 本文讨论的是如何在服务端优雅地统一处理这种情况,如何禁止用户重复点击等客户端操作不在本文的讨论范畴。利用唯一请求编号去重可能会想到

2022-05-13 17:18:50 322

原创 什么是CDC?

今天这篇文章是对变更数据捕获 (CDC)实践的介绍,而不是对特定工具的深入探讨。假设我们正在构建一个简单的 Web 应用程序。在大多数情况下,此类项目从最小的数据架构开始。例如,像 MySQL 或 PostgreSQL 这样的关系数据库足以处理和存储许多用户可以使用的数据。他们输入查询,更新它们,关闭它们,更正它们,通常会执行许多操作。它可以是 CRM、ERP、自动银行系统、计费系统,甚至是 POS 终端,应有尽有。但是,存储在数据库中的信息可能会引起许多第三方系统的兴趣,通常是分析系统。企业需要.

2022-05-13 17:18:10 8367

原创 15张图,注册中心 Zookeeper、Eureka、Nacos、Consul 和 Etcd 选哪个

经过近2周的学习,原来注册中心除了ETCD和Zookeeper,常用的还有Eureka、Nacos、Consul,下面我们就对这些常用的注册中心,初探它们的异同,便于后续技术选型。全文接近8千字,有点长,建议先收藏,再慢慢看,下面是文章目录:注册中心基本概念什么是注册中心?注册中心主要有三种角色: 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 服务消费者(RPC Client):在启.

2022-05-13 17:13:28 658 1

原创 全网显示 IP 归属地,是怎么实现的?

为了进一步规范国内的网络舆论,国家规定了各互联网平台都需要显示 IP 归属地信息。微博、抖音、公众号等多个平台纷纷上线了 IP 归属地功能,这标志着国内言论的进一步规范化。但互联网平台商们是怎么通过 IP 定位到我们所属地区的?这背后的原理是什么?IP 归属地背后又有哪些实际的应用?今天我们就来聊聊 IP 归属地背后的技术原理。如何通过 IP 找到地址?在我们印象中,我们都知道可以通过 IP 地址找到某个人。但当我们细想一下,我们会发现其实 IP 地址与地理位置并不是直接相关的。那我们到底是如何通过

2022-05-13 17:12:30 291

原创 七种分布式事务的解决方案,一次讲给你听

什么是分布式事务分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器「分别位于不同的分布式系统的不同节点之上」。一个大的操作由N多的小的操作共同完成。而这些小的操作又分布在不同的服务上。针对于这些操作,「要么全部成功执行,要么全部不执行」。为什么会有分布式事务?举个例子:转账是最经典的分布式事务场景,假设用户 A 使用银行 app 发起一笔跨行转账给用户 B,银行系统首先扣掉用户 A 的钱,然后增加用户 B 账户中的余额。如果其中某个步骤失败,此时就有可能会出现

2022-05-13 17:11:56 419

原创 一口气说出 OAuth2.0 的四种授权方式

一、OAuth2.0 为何物OAuth简单理解就是一种授权机制,它是在客户端和资源所有者之间的授权层,用来分离两种不同的角色。在资源所有者同意并向客户端颁发令牌后,客户端携带令牌可以访问资源所有者的资源。OAuth2.0是OAuth协议的一个版本,有2.0版本那就有1.0版本,有意思的是OAuth2.0却不向下兼容OAuth1.0,相当于废弃了1.0版本。举个小栗子解释一下什么是 OAuth 授权?在家肝文章饿了定了一个外卖,外卖小哥30秒火速到达了我家楼下,奈何有门禁进不来,可以...

2022-05-13 17:11:21 10267

转载 MySQL 去重的 3 种方法​,还有谁不会?

在使用SQL提数的时候,常会遇到表内有重复值的时候,比如我们想得到 uv (独立访客),就需要做去重。在 MySQL 中通常是使用 distinct 或 group by子句,但在支持窗口函数的 sql(如Hive SQL、Oracle等等) 中还可以使用 row_number 窗口函数进行去重。举个栗子,现有这样一张表 task:备注: task_id: 任务id; order_id: 订单id; start_time: 开始时间 注意:一个任务对应多条订单

2022-05-13 17:08:23 3236

原创 看源码和你说说Spring事务为什么会失效?

不用Spring管理事务?如果对AOP的实现不太熟悉的话可以看我之前的文章,或者到我网站www.javashitang.com上查看系列文章2w字搞懂Spring AOP的前世今生让我们先来看一下不用spring管理事务时,各种框架是如何管理事务的使用JDBC来管理事务使用Hibernate来管理事务业务逻辑和事务代码是耦合到一块的,并且和框架的具体api绑定了。当我们换一种框架来实现时,里面对事务控制的代码就要推倒重写,并不一定能保证替换后的api和之前的api有相同的行为。「

2022-05-13 17:07:19 426

转载 实力总结四类Bean注入Spring的方式

一提到Spring,大家最先想到的是啥?是AOP和IOC的两大特性?是Spring中Bean的初始化流程?还是基于Spring的Spring Cloud全家桶呢?今天我们就从Spring的IOC特性入手,聊一聊Spring中把Bean注入Spring容器的几种方式。我们先来简单了解下IOC的概念:IOC即控制反转,也称为依赖注入,是指将对象的创建或者依赖关系的引用从具体的对象控制转为框架或者IOC容器来完成,也就是依赖对象的获得被反转了。“可以简单理解为原来由我们来创建对象,现在由Spring

2022-05-12 21:09:08 334

转载 这次 moon 要把 socket 玩的明明白白

前言一说到网络,大家必然会想到 TCP、UDP、Http、三握四挥等,但是一说 Socket,大家可能会有点模糊了,只知道网络中会用到,但是 Socket 究竟是什么? 套接字又是啥?为啥网络离不开 Socket?Socket 是什么?Socket 其实就是套接字,大部分人对于 Socket 的理解就是它可以实现一个简单的网络通信,但是它「具体解决了哪些问题?有什么实际的作用?为什么会有一个 Socket 出现?」Socket 其实是在「应用层与传输层之间的一个产物」,它把传输层的很多复

2022-05-12 21:08:17 124

转载 面试官问,MySQL建索引需要遵循哪些原则呢?

1.选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。2.为经常需要排序、分组和联合操作的字段建立索引经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。3.为常作为查询条件的字段建立索引如果某个字段经常用来做查询条件,那

2022-05-12 21:07:24 209

转载 实力总结四类Bean注入Spring的方式

一提到Spring,大家最先想到的是啥?是AOP和IOC的两大特性?是Spring中Bean的初始化流程?还是基于Spring的Spring Cloud全家桶呢?今天我们就从Spring的IOC特性入手,聊一聊Spring中把Bean注入Spring容器的几种方式。我们先来简单了解下IOC的概念:IOC即控制反转,也称为依赖注入,是指将对象的创建或者依赖关系的引用从具体的对象控制转为框架或者IOC容器来完成,也就是依赖对象的获得被反转了。“可以简单理解为原来由我们来创建对象,现在由Spring

2022-05-11 21:41:59 171 1

转载 聊聊 Redis+Caffeine 两级缓存

在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。随着不断的发展,这一架构也产生了改进,在一些场景下可能单纯使用Redis类的远程缓存已经不够了,还需要进一步配合本地缓存使用,例如Guava cache或Caffeine,从而再次提升程序的响应速度与服务性能。于是,就产生了使用本地缓存作为一级缓存,再加上远程缓存作为二级缓存的两

2022-05-11 21:41:05 832

转载 别再自己瞎写工具类了,SpringBoot 内置工具类不香吗?

断言1.断言是一个逻辑判断,用于检查不应该发生的情况2.Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启3.SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查//要求参数object必须为非空(NotNull),否则抛出异常,不予放行//参数 message 参数用于定制异常信息。voidnotNull(Objectobject,Stringmessage)//要求参数必须...

2022-05-11 21:39:50 124

转载 面试官问:Java序列化和反序列化为什么要实现Serializable接口

最近公司的在做服务化, 需要把所有model包里的类都实现Serializable接口, 同时还要显示指定serialVersionUID的值. 听到这个需求, 我脑海里就突然出现了好几个问题, 比如说: 序列化和反序列化是什么? 实现序列化和反序列化为什么要实现Serializable接口? 实现Serializable接口就算了, 为什么还要显示指定serialVersionUID的值? 我要为serialVersionUID指定个什么值? 下面我们来一一解答

2022-05-11 21:38:53 156

转载 一文解决 UDP 和 TCP 高频面试题

找工作面试,经常会被问到 UDP 和 TCP,今天给大家总结其中的核心高频面试题,再有面试官问你相关的知识点,看这篇就够了!PS:文章有点长,请耐心阅读。目录:1、UDP 和 TCP 的特点与区别2、UDP 、TCP 首部格式3、TCP 的三次握手和四次挥手4、TCP 的三次握手(为什么三次?)5、TCP 的四次挥手(为什么四次?)6、TCP 长连接和短连接的区别7、TCP粘包、拆包及解决办法8、TCP 可靠传输9、TCP 滑动窗口10、TCP 流量控

2022-05-11 21:38:13 168

转载 60 个知识点带你轻松掌握 MySQL

1、关系型和非关系型数据库的区别?关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据。 可以保持数据的一致性。 数据更新的开销比较小。 支持复杂查询(带 where 子句的查询) 非关系型数据库(NOSQL)的优点 无需经过 SQL 层的解析,读写效率高。 基于键值对,读写性能很高,易于扩展 可以支持多种类型数据的存储,如图片,文档等等。 扩展(可分为内存性数据库以及文档型数据库,比如 Redis,MongoDB,HB

2022-05-11 21:36:16 609

转载 实战派 | Java项目中玩转Redis6.0客户端缓存

铺垫首先介绍一下今天要使用到的工具Lettuce,它是一个可伸缩线程安全的redis客户端。多个线程可以共享同一个RedisConnection,利用nio框架Netty来高效地管理多个连接。放眼望向现在常用的redis客户端开发工具包,虽然能用的不少,但是目前率先拥抱redis6.0,支持客户端缓存功能的却不多,而lettuce就是其中的领跑者。我们先在项目中引入最新版本的依赖,下面正式开始实战环节:<dependency><groupId>io.let...

2022-05-11 21:34:38 299

转载 InnoDB原理篇:Change Buffer是如何提升索引性能的?

Change Buffer是什么MySQL在启动成功后,会向内存申请一块内存空间,这块内存空间称为Buffer Pool。Buffer Pool内维护了很多内容,比如缓存页、各种链表、redo log buff、change buffer等等。回到正题,change buffer是用来干嘛的?当索引字段内容发生更新时(update、insert、delete),要更新对应的索引页,如果索引页在Buffer Pool里命中的话,就直接更新缓存页。否则,InnoDB会将这些更新操

2022-05-11 21:33:40 339

转载 阿里一面:SQL 优化有哪些技巧?

MySQL 相信大家一定都不陌生,但是不陌生不一定会用!会用不一定能用好!正在上传…重新上传取消今天,Tom哥就带大家复习一个高频面试考点,SQL 优化有哪些技巧?当然这个还是非常有实用价值的,工作中你也一定用的上。如果应用得当,升职加薪,指日可待1、创建索引一定要记得创建索引,创建索引,创建索引重要的事说三遍!执行没有索引的 SQL 语句,肯定要走全表扫描,慢是肯定的。这种查询毫无疑问是一个慢 SQL 查询。那么问题来了,是不是要收集所有的 where 查询条件,然

2022-05-10 21:54:41 100

转载 你管这破玩意儿叫 MQ?

幸福的烦恼张大胖最近是又喜又忧,喜的是业务量发展猛增,忧的是由于业务量猛增,一些原来不是问题的问题变成了大问题,比如说新会员注册吧,原来注册成功只要发个短信就行了,但随着业务的发展,现在注册成功也需要发 push,发优惠券,…等这样光注册用户这一步就需要调用很多服务,导致用户注册都需要花不少时间,假设每个服务调用需要 50 ms,那么光以上服务就需要调用 200 ms,而且后续产品还有可能再加一些发新人红包等活动,每加一个功能,除了引入额外的服务增加耗时外,还需要额外集成服务,重发代码,实在让人

2022-05-10 21:50:52 85

转载 推荐一款管理系统专用低代码工具,一天开发一个系统不是梦

Yao简介Yao是一款Go语言驱动的低代码应用引擎,目前在Github上已有3.8k+Star!使用该框架,你可以通过JSON完成90%的接口和页面开发,用来开发管理系统正合适!Yao的名字源于汉字爻(yáo),是构成八卦的基本符号,看样子作者对八卦还是挺有研究的。下面使用使用Yao开发的界面效果图,暗黑风格,还是挺炫酷的!安裝使用Docker来安装Yao是非常方便的,下面我们就采用此种方式在Linux上安装它! 首先下载Yao的Docker镜像; dockerpu.

2022-05-10 21:46:22 101

转载 太极限了,JDK的这个BUG都能被我踩到

之前遇到个文件监听变更的问题,刚好这周末有空研究了一番,整理出来分享给大家。从一次故障说起我们还是从故障说起,这样更加贴近实际,也能让大家更快速理解背景。有一个下发配置的服务,这个配置服务的实现有点特殊,服务端下发配置到各个服务的本地文件,当然中间经过了一个agent,如果没有agent也就无法写本地文件,然后由client端的程序监听这个配置文件,一旦文件有变更,就重新加载配置,画个架构图大概是这样:今天的重点是文件的变更该如何监听(watch),我们当时的实现非常简单: 单独起

2022-05-10 21:42:35 206

转载 聊聊并发编程的12种业务场景

前言并发编程是一项非常重要的技术,无论在面试,还是工作中出现的频率非常高。并发编程说白了就是多线程编程,但多线程一定比单线程效率更高?答:不一定,要看具体业务场景。毕竟如果使用了多线程,那么线程之间的竞争和抢占cpu资源,线程的上下文切换,也是相对来说比较耗时的操作。下面这几个问题在面试中,你必定遇到过: 你在哪来业务场景中使用过多线程? 怎么用的? 踩过哪些坑? 今天聊聊我之前在项目中用并发编程的12种业务场景,给有需要的朋友一个参考。1. 简

2022-05-10 21:41:34 398

转载 TCP/IP协议-TCP三次握手和四次挥手

TCP是面向连接的协议,它基于运输连接来传送TCP报文段,TCP运输连接的建立和释放,是每一次面向连接的通信中必不可少的过程,建立连接时的数据包是没有实际内容的,没有应用层的数据。三次握手-建立连接三次握手图:第一次握手:客户端发送含有SYN=1,seq=m的报文传递给服务器端,并且进入SYN_SEND状态。第二次握手:确定连接:确定连接时服务端给客户端发一个数据报文,该数据包中SYN =1, ACK = m+1,seq=n,状态由 LISTEN 改为 SYN-RCVD。拒

2022-05-09 21:14:46 150

转载 5 张图带你理解 RocketMQ 消费者启动过程

今天来分享 RocketMQ 中一个关键的知识点,消费者的启动过程。多数消息队列中,消费者和 Broker 通信的方式有两种,PUSH 模式和 PULL 模式: PUSH 模式:Broker 主动把消息推送给订阅的消费者; PULL模式:消费者主动从 Broker 拉取消息。 注意,RocketMQ 并没有真正实现 PUSH 模式, RocketMQ 中的 PUSH 模式,本质上也是 PULL 模式,只是消费端封装了轮询过程,相当于开启一个定时线程不停地从 Broker 拉取消息,拉

2022-05-09 20:52:12 304

转载 我们为什么要分库分表?

前言大家好,我是Tom哥,今天跟大家聊聊分库分表。 什么是分库分表 为什么需要分库分表 如何分库分表 什么时候开始考虑分库分表 分库分表会导致哪些问题 分库分表中间件简介 1. 什么是分库分表分库:就是一个数据库分成多个数据库,部署到不同机器。分表:就是一个数据库表分成多个表。2. 为什么需要分库分表2.1 为什么需要分库呢?如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考虑拆分数据库。从这几方面来看:

2022-05-09 20:42:08 281

转载 程序员想进大厂,不会 Dubbo 怎么行

Dubbo架构核心角色Monitor实现原理 Consumer 端在发起调用之前以及 Provider 端在接收请求之前都会先走 filter链,然后再进行业务处理。默认情况下,Consumer 和 Provider 的 filter链中都会有 Monitorfilter。 MonitorFilter 向 DubboMonitor 发送数据。 DubboMonitor 将数据聚合后暂存到 ConcurrentMap<Statisti

2022-05-09 20:41:15 103

转载 又被问了:Spring Boot 定时任务开启后,怎么符合条件自动停止?

问题大概就是:Spring Boot 定时任务开启后,怎么符合条件自动停止?当时我有空,虽然已经给出了参考答案,但可能还有一些细节地方要注意的,另外,我也觉得这个问题特别有意思,现在特别拿出来整理下,分享下给大家。1、自定义任务调度首先覆盖TaskSchedulingAutoConfiguration自动配置类里面的ThreadPoolTaskSchedulerBean:/***自定义任务调度*公众号:Java技术栈*/@Data@Componentc...

2022-05-09 20:29:34 374

转载 Fastjson 2 来了,性能继续提升,还能再战十年

FASTJSON 2.0是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库,同一套API支持JSON/JSONB两种协议,JSONPath是一等公民,支持全量解析和部分解析,支持Java服务端、客户端Android、大数据场景。 FASJTONS2代码 https://github.com/alibaba/fastjson2/releases/tag/2.0.1 JSONB格式文档 https://github.com/alibaba/fastjson2/wiki

2022-05-09 20:26:45 367

转载 Redis 为何使用近似 LRU 算法淘汰数据,而不是真实 LRU?

在《Redis 数据缓存满了怎么办?》我们知道 Redis 缓存满了之后能通过淘汰策略删除数据腾出空间给新数据。淘汰策略如下所示:redis内存淘汰设置过期时间的 keyvolatile-ttl、volatile-random、volatile-lru、volatile-lfu这四种策略淘汰的数据范围是设置了过期时间的数据。所有的 keyallkeys-lru、allkeys-random、allkeys-lfu这三种淘汰策略无论这些键值对是否设置了过期时间,当内存不足都会进..

2022-05-09 20:24:53 392

转载 两万字详解,InnoDB锁专题

前言大家好,我是捡田螺的小男孩。本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。 为什么需要加锁呢? InnoDB的七种锁介绍 一条SQL是如何加锁的 RR隔离级别下的加锁规则 如何查看事务加锁情况 死锁案例分析 1. 为什么需要加锁?数据库为什么需要加锁呢?在日常生活中,如果你心情不好。想要一个人静静,不想被比别人打扰,你就可以把

2022-05-05 13:47:32 128

转载 舒服了,踩到一个关于分布式锁的非比寻常的BUG

提到分布式锁,大家一般都会想到 Redis。想到 Redis,一部分同学会说到 Redisson。那么说到 Redisson,就不得不掰扯掰扯一下它的“看门狗”机制了。所以你以为这篇文章我要给你讲“看门狗”吗?不是,我主要是想给你汇报一下我最近研究的由于引入“看门狗”之后,给 Redisson 带来的两个看起来就心里一紧的 bug : 看门狗不生效的 BUG。 看门狗导致死锁的 BUG。 为了能让你丝滑入戏,我还是先简单的给你铺垫一下,Redisson 的看门狗到底是个啥

2022-05-05 13:16:01 411

转载 最全的SpringMVC教程,终于让我找到了

1. 为啥要学 SpringMVC?1.1 SpringMVC 简介在学习 SpringMVC 之前我们先看看在使用 Servlet 的时候我们是如何处理用户请求的:配置web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

2022-05-04 21:46:18 101

转载 Redis持久化之RDB快照

AOF日志记录的是操作命令,而不是实际的数据,所以,用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常使用。这当然不是理想的结果。那么,还有没有既可以保证可靠性,还能在宕机时实现快速恢复的其他方法呢?还有另外一种持久化方法:内存快照。。所谓内存快照,就是指内存中的数据在某一个时刻的状态记录。这就类似于照片,当你给朋友拍照时,一张照片就能把朋友一瞬间的形象完全记下来。对 Redis 来说,它实现类似照片记录效果的方式,就是把某

2022-05-04 21:43:50 463

转载 Spring Boot 集成 JavaMailSender发送邮件

前言项目中邮件发送为常用功能之一,例如注册成功后需要发送激活邮件,账号的会员到期提示,每日报表统计等功能都需要自动发送邮件,本文将讲解Spring Boot如何实现邮件发送功能。集成步骤添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> &

2022-05-04 20:57:10 1418

转载 图文并茂,深入理解RocketMQ的刷盘机制

今天这篇我们先来聊聊 Kafka 生产者初始化时用到的核心组件以及发送的核心流程,带你梳理生产者初始化整体的源码分析脉络。认真读完这篇文章,我相信你会对 Kafka 生产初始化源码有更加深刻的理解。这篇文章干货很多,希望你可以耐心读完。01 总体概述我们都知道在 Kafka 中,我们把产生消息的一方称为生产者即 Producer,它是 Kafka 核心组件之一,也是消息的来源所在。那么这些生产者产生的消息是如何传到 Kafka 服务端的呢?初始化过程是怎么样的呢?接下来会逐一讲解说明。

2022-05-04 20:25:43 1537

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除