自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

差池

差池

  • 博客(53)
  • 收藏
  • 关注

原创 为什么用StringBuilder替换String

一:问题:什么时候用String,什么时候用StringBuilder?二:回答问题前,要搞清楚什么是可变类型,什么是不可变类型1:可变类型:即对象一旦被创建初始化后,它们的值可以被改变,每次都是修改原对象,不会产生新的对象。2:不可变类型:即对象一旦被创建初始化后,它们的值就不能被改变,每次修改都会产生新的对象。3:不可变类型优点:3.1:如果创建很多个相同值的字符串对象,他在内存...

2020-03-14 22:13:26 821

原创 copy failed: file not found in build context or excluded

今天介绍在docker中运行一个dotnetcore webapi,遇到的一个问题和解决方案。一.问题在运行 docker 命令:“docker build -t todoapi .” 生成镜像的时候报了如下 的错误:COPY failed : file not found in build context or excluede by …如图所示:二.原因dockerfile 不能获取 父目录三.解决方案1:将dockerfile放到父目录(让dockerfile和解决方案在同

2021-08-01 11:31:55 2412

原创 最好不要偶遇-垃圾回收

一.问题循环调用同一个接口,调用100次,其中有95次或是98次都是几十毫秒返回,但是有那么几次一秒左右才返回。接口相同,参数相同,返回时间怎么差异这么大?这个问题困扰了我很长时间,经过一段时间的研究终于知道原因了,起初我猜测可能的原因如下:1:难道是网络问题?2:难道是缓存问题?二.分析问题1:网络延迟服务同属于一个局域网,网络延迟不会超过5ms,所以不是网络延迟造成的。2:没有命中缓存如果没有命中缓存,也应该是第一个请求没有命中,后续的请求就会从缓存中拿数据了。(我使用的缓存策略是从关系

2021-04-06 15:05:19 203

原创 springboot war包部署到tomcat报404

一、问题用idea启动 springboot 能够正常访问,但是将 war包部署到tomcat却报404,如下图所示:二、解决方案在网上找了很多文章,大部分文章说启动类要继承SpringBootServletInitializer,并且重写configure。我的代码已经这样实现了,但是仍然报404。经过反复查找,最后发现是因为路径错了,正确的路径要带着war包的名称,如下所示:正确的路径:http://localhost:8080/sb-0.0.1-SNAPSHOT/hello其中“sb-0

2020-12-28 10:06:25 749

原创 设计模式之迭代器模式

迭代器模式是使用非常普遍的设计模式,本文介绍一下什么是迭代器模式,以及如何实现迭代器模式。一.定义提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示,迭代器模式是一种对象行为型模式。二.使用场景当需要为聚合对象提供多种遍历方式时。当需要为遍历不同的聚合结构提供一个统一的接口时。当访问一个聚合对象的内容而无须暴露其内部细节的表示时。三.优缺点1:优点:访问一个聚合对象的内容而无须暴露它的内部表示。遍历任务交由迭代器完成,这简化了聚合类。它支持以不同方式遍历一个

2020-12-05 23:22:50 137

原创 Linq延迟执行(.Net)

调试代码的时候,突然发现Linq语句不会立即执行,当时一头雾水,因此找资料学习了一下,之后发现身边很多人都忽略了这个细节,所以把他拿出来说一下。一.特点1:Linq不会立即执行,某些操作才会触发Linq的真正执行,例如 Foreach,Count(),ToList(),ToArray() 等等。二.问题1:由于某些操作会触发Linq执行,这样会导致Linq语句的重复执行,这会比较耗费性能,特别像数据库查询这种场景。三.解决方案1:为了减少Linq重复执行的问题,先用ToXXX()这类方法转换成集

2020-11-21 23:16:50 471

原创 For和Foreach处理匿名函数的差别

有一天看C#本质论,突然发现For和Foreach对匿名函数处理的方式不同,差别比较隐蔽,因此想跟大家分享 一下。一.差别看代码,很简单,只有三个方法:1:Main方法,负责调用ForTest和ForeachTest方法:2:ForTest方法,包含如下内容:定义一个Action委托列表 ;通过for循环向Action列表中添加匿名函数,匿名函数用来输出变量“i”;循环Action列表,执行匿名函数;3:ForeachTest方法,包含如下内容:定义一个Action委托列表;定

2020-10-25 02:27:25 635

原创 windbg分析单个服务线程数很多的问题

有一天突然发现生产环境单个服务的线程数很多,如下图所示:因此我想到了两个问题,第一:为什么同时存在这么多线程?第二:线程是怎么产生的?一.为什么同时存在这么多线程?1:通过windbg分析dump文件,使用命令!threadpool查看,可以看到存在大量空闲线程:2:用命令!threads查看线程,如下图,存在大量的MTA(Threadpool worker),这样的线程就是空闲线程。切换到任意一个线程,我选择了212这个线程,用命令!dumpstack输出堆栈信息,可以看到线程最后调用的是W

2020-10-17 23:21:16 1420

原创 vue 部署到 iis 刷新报404

很纠结是否要写这篇分享,因为vue官网上已经有了解答,但是完全照搬它的内容还有问题,因此决定还是分享一下解决方法:一:vue刷新报404问题原因我就不说了,官网已经说了,想了解的看这里:vue刷新报404的原因二:对于iis的解决方案如下1:安装 IIS UrlRewrite2:在你的网站根目录中创建一个 web.config(如果已经存在,就不用创建了) 文件,内容如下:<?xml version="1.0" encoding="UTF-8"?><configuration

2020-09-28 17:01:30 2778

原创 设计模式之深入理解创建者模式

平时大家说的比较多的还是工厂方法模式或抽象工厂模式,今天说一说创建者模式。一.定义指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。二.特点1、它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。2、它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。三.优缺点1、优点:封装性好,构建和表示分离;扩展性好,各个具体的建造者相互独立,有利于系统的解耦;客户端不必知道产品内部组成的细节,建造者可以对创

2020-09-20 13:17:59 422

原创 损坏状态异常--StackOverflowException导致服务挂掉

最近遇到一个问题,服务发版后,过几分钟就会挂掉,按照我以往的经验分析可能是CPU达到100%或内存不足,但是我查看了服务的状态,CPU和内存都还很充裕。此时我晕了…,通过分析dump文件,才知道是因为StackOverflowException导致服务挂掉了。那问题来了:1:是什么导致了StackOverflowException。2:为什么StackOverflowException导致服务挂掉了。一.问题1:是什么导致了StackOverflowException看代码,如下图所示:1:通过

2020-09-12 23:22:47 759

原创 设计模式之深入理解抽象工厂模式

接着前一篇工厂方法模式,本文介绍抽象工厂模式。一.定义定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族(品牌)的不同种类的产品的模式结构。二.优缺点1、优点:可以在类的内部对产品族中相关联的多个种类产品共同管理,而不必专门引入多个新的类来进行管理;当增加一个新的产品族(品牌)时不需要修改原代码,满足开闭原则;2、缺点:当产品族(品牌)中需要增加一个新的产品时,所有的工厂类都需要进行修改。三.何时使用1:系统中有多个产品族,

2020-09-05 16:21:53 229

原创 Monitor 最底层实现原理(.Net)

经常听大家聊锁的事情,可是为什么就能锁住呢,这个问题可能10个人里面9个人不知道,今天来说明一下具体的原因。一.原理1、原理:当调用Monitor.Enter()时,CLR通过在对象头中存储当前线程ID或通过在同步块表中创建同步块并将其索引存储在对象头中来注册锁。2、下图表明了对象头、同步块表和同步块对象三者之间的关系。同步块表存储了同步块对象的引用。同步块表保存了实体对象的引用(弱引用)。对象头存储了同步块对象在同步块表中的索引。3、那什么是对象头呢,现在说明一下:对象头:狭义又称

2020-08-29 12:04:57 1500 7

原创 设计模式之深入理解工厂方法模式

对于工厂模式大家都是耳熟能详的,但是发现大家对工厂模式的叫法比较混乱,我先明确一下概念。工厂模式分为“工厂方法模式”和“抽象工厂模式”,此两种模式是属于Gof23种经典设计模式的。平时大家所说的“工厂模式“其实就是指“工厂方法模式”,工厂方法模式还可以退化为“简单工厂模式”,“简单工厂模式”并不属于Gof23中经典设计模式。本文将介绍工厂方法模式。一.定义定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。二.特点具体产品和具体工厂一 一对应三.优缺点1:优点用户

2020-08-22 13:46:53 171

原创 lock原理及使用举例(.net)

我们经常用lock加锁,实现数据操作的安全性,本篇文章将介绍lock的实现原理及几种使用方式。一.原理lock的作用是将多线程“单线程化”,从而实现多线程按照顺序执行。lock其实是一个语法糖,编译器会将lock转换成monitor,看一下中间代码便一目了然.1:c#源码2:编译后的中间码,编译器根据show方法生成了一个类<>__DisplayClass3_0,在该类中包含了一个b__0方法:如下图3:b__0方法中的代码如下图,我们看到此处用到了Monitor进行加锁:二.

2020-08-15 01:04:46 3596

原创 设计模式之深入理解观察者模式

本篇文章分为两部分,其中第一部分介绍什么是观察者模式,第二部分介绍观察者模式值得思考的地方。第一部分-观察者模式介绍一.定义指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。二.解决的问题一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。三.使用场景一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知四

2020-08-09 01:17:29 159

原创 解密async await 原理(.net)

我们经常用async和await实现异步方法,那么他的实现原理是什么呢,今天介绍一下。一.代码1:介绍原理之前,先看一段简单的代码:2:代码执行结果,如下所示,想必结果和大家的预期是一样的:二.工具研究async await使用的工具是dotPeek,注意:要勾选 show compiler-generated code。下载地址:https://www.jetbrains.com/decompiler/download/#section=web-installer三.原理也许大家都听

2020-08-03 00:54:13 2623 2

原创 设计模式之深入理解适配器模式

整体思路是这样的,第一部分介绍什么是适配器模式,第二部分介绍适配器模式值得思考的地方。第一部分-适配器模式介绍一.定义1:定义:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。2:分类:适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。二.解决的问题主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。

2020-07-25 10:59:57 159

原创 windbg问题:Failed to load data access DLL, 0x80004005

1.问题在使用windbg分析dump文件时,有时候会遇到这个问题“Failed to load data access DLL, 0x80004005“,如下图所示:2.问题分析最根本原因是:SOS.dll调试器扩展未能找到匹配项mscordacwks.dll。3.原因1:没有设置symbol path,如下图所示:2:设置了symbol path ,但是mscordacwks.dll版本不正确。4.解决方案4.1:没有设置symbol path1:这个很简单,只要配置symbol p

2020-07-19 00:11:19 1571

原创 设计模式之深入理解策略模式

本篇文章分为两部分,其中第一部分介绍什么是策略模式,第二部分介绍策略模式值得思考的地方。第一部分-策略模式介绍一.策略模式定义该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。二.优点1、多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句(if else)。2、策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到父类里面,从而避免重复的代码。3、策略模式可以提供相同行为的不同实现,客户可以根据不同时间或

2020-07-15 23:12:46 187

原创 如何选择单例模式和静态类

某一天感觉单例模式和静态类好像呀,一个是只创建了一个对象,另个一是不需要创建对象,那么问题来了,我们该如何选择使用单例模式还是静态类呢?下面将做讲解:一.二者之间的区别1、区别如下表所示:2、单例模式对于静态类主要优点是面向对象:单例可以继承一个基类实现多态;实现一个接口,提供不同的功能;二.如何选择1:当需要支持面向对象的功能时,选择单例,例如:管理状态(类的字段)2:如果仅仅是将一堆静态方法存储到一起,则选择静态类三.使用案例1:单例模式:Java运行时(java.lang.

2020-07-12 00:42:06 781

原创 设计模式之深入理解单例模式(.net)

都说单利模式是最简单的设计模式,但是我们对这个设计模式理解有多少,今天来聊一下。一.定义和特点1、定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。2、特点:单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点;二.解决的问题一个全局使用的类频繁地创建与销毁。因为频繁的创建与销毁对象,会占用内存开销,还会影响程序性能。三.使用场景1:操作系统中的文件系统。2:多线程中的线程池。3:显卡的驱动程序对象。4:打印机的后台处理

2020-07-10 23:25:19 414

原创 类与类之间的关系和耦合度

写了很多年代码,都没有考虑过类之间的关系,大家了解比较多的是继承关系,其实还有很多其他关系我们也使用了,但是并没有一个明确的概念,还有类之间的耦合度也不是很清楚,接下来介绍类和类之间的关系。在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。依赖关系依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方

2020-06-30 21:19:46 7170

原创 设计模式六大原则---迪米特法则(降低耦合度)

一.定义迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern University)的一个名为迪米特(Demeter)的研究项目,由伊恩·荷兰(Ian Holland)提出,被 UML 创始者之一的布奇(Booch)普及,后来又因为在经典著作《程序员修炼之道》(The Pragmatic Programmer)提及而广为人知。迪米特法则的定义是:只与你的直接朋友交谈,

2020-06-26 23:23:30 1814

原创 设计模式六大原则---接口隔离原则(避免大而全的接口)

一.定义2002 年罗伯特·C.马丁给“接口隔离原则”的定义是:客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods they do not use)。该原则还有另外一个定义:一个类对另一个类的依赖应该建立在最小的接口上(The dependency of one class to another one should depend on the smallest possible interface)。以上两个定义的含

2020-06-26 19:05:23 504

原创 设计模式六大原则---开闭原则(开发扩展、关闭修改)

定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification),这就是开闭原则的经典定义。这里的软件实体包括以下几个部分:1、项目中划

2020-06-25 23:52:40 554

原创 设计模式六大原则---依赖倒置(面向抽象编程)

依赖倒置原则(Dependence Inversion Principle,DIP)是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在 C++ Report 上发表的文章。定义依赖倒置原则的原始定义为:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon

2020-06-25 14:06:31 326

原创 设计模式六大原则---里氏替换(类继承)

一.定义1:里氏替换原则(Liskov Substitution Principle,LSP)由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年的“面向对象技术的高峰会议”(OOPSLA)上发表的一篇文章《数据抽象和层次》(Data Abstraction and Hierarchy)里提出来的,她提出:继承必须确保超类所拥有的性质在子类中仍然成立(Inheritance should ensure that any property proved about supertype

2020-06-24 22:51:53 394

原创 设计模式六大原则---单一职责(高内聚)

经常跟同事争论代码哪里写的不对,只是知道不对,却不 能说明白为什么不对,因此意识到需要增加理论知识的研究,今天来分享一下设计模式六大原则之一的“单一职责”。一.概念1:通过看书和查资料,对于单一职责的定义大体上是这样的:对于类来说,一个类只做一件事。但是在日常开发过程中,我们发现,很少有一个类只做一件事的,因此我更倾向于如下这个定义:一个类负责一个功能领域中的相应职责。2:另外,单一职责也同样适用于方法,对于方法来说,一个方法只做一件事。3:单一职责侧重点是高内聚,而剩下的五个原则侧重点是低耦合和扩

2020-06-24 00:49:38 811

原创 验证垃圾回收规则(.net)

无论通过看书或是听别人讲关于垃圾回收的事情,我们或多或少都有一些了解,但是我们了解的内容是正确的吗,今天我要做的事情就是这样,证明垃圾回收规则。垃圾回收原理简单说一下垃圾回收的基本原理:1:Clr将heap分成3个代龄区域: Gen 0、Gen 1、Gen 2。2: 采用Mark Sweep算法进行回收。3:GC触发条件:CLR检查到第0代超出预算时会触发一次GC;代码显式调用System.GC的静态Collect方法;Windows报告低内存情况;CLR正在卸装AppDomain;C

2020-06-21 02:01:37 218

原创 Win10 telent VMware 安装的Centos7 9092端口不通

用VMware 安装CentOS7后,在win10系统里面,ping IP地址是通的,但是 telnet ip+socket 确不通,查了各种资料终于搞定,其实只需要做四件事情:第一:开放端口9092命令:firewall-cmd --zone=public --add-port=9092/tcp --permanent,第二:防火墙重新加载命令:firewall-cmd --reload一般的文章只会说上面这两个操作,但是还有两个操作非常重要,就是配置kafka的serve.propertie

2020-06-19 21:19:51 1790 2

原创 C#计算对象占用内存大小(.net)

我们写了很多的代码,但是有没有想过每写一句代码会占用多大空间呢,现在就来算一下。一.对象大小影响对象占用多大空间的主要因素如下:1:字段个数2:字段类型3:字段布局二.字段类型先来看一下,主要数据类型在32位系统和64位系统中的字节长度:从上面可以得知只有指针类型变成了8个字节,因为指针里面存储的是数据的地址,而非数据本身,所以会变为2倍。三.布局在clr中,布局一共有三种:1:LayoutKind.Auto:clr会优化字段排序。2:LayoutKind. Sequential

2020-06-13 10:56:56 8262 1

原创 在clr中,new创建对象都做了哪些操作(.net)

用了好多年的new(创建对象),可是对于new背后都做了哪些操作,一直不清楚,经过两周的研究(不仅仅是看书上的理论,还要证明书上所说的是否正确),终于明白一些,现在来说一下:工作内容每当我们用new创建一个对象时,都会做如下操作:1:计算类型的字段(以及从积累集成的字段)所需的字节数。2:加上对象开销所需字节数。类型对象指针:4字节(32位),8字节(64位);同步快索引: 4字节(32位),8字节(64位);3:clr检查区域中是否存在分配对象所需的字节。如果托管堆有足够的空间,就在

2020-06-06 00:51:30 308

原创 kafka可靠的数据传递---在可靠的系统里使用生产者

作为消息中间件,kafka为了保证消息传递的可靠性,做了很多工作,今天分享这几方面:可靠性保证,复制,broker配置,在可靠的系统里使用生产者。一.可靠性保证为了保证kafka整个系统的可靠性,kafka做了如下几方面的工作:1:Kafka可以保证分区消息的顺序,如果使用同一个生产者往同一个分区写入消息,而且消息B在消息A之后写入,那么Kafka可以保证消息B的偏移量比消息A的偏移量大,而且消费者先读取消费者A再读取消费者B2:只有当消息被写入分区的所有同步副本时,它才被认为是“已提交”的。3:

2020-05-31 20:04:51 145

原创 为什么return 无法跳出 foreach (.net)

我们在写代码的时候经常在foreach循环里面通过return跳出整个函数,如下所示:1:创建一个string列表,然后插入两条数据,“张三”和“李四”,通过foreach循环输出,当输出第一条数据“张三”后,执行return跳出函数,因此输出结果是:“张三”![在这里插入图片描述](https://img-blog.csdnimg.cn/20200530185855464.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shado

2020-05-30 19:24:25 1706

原创 深入kafka(二)分区分配

本篇文章介绍kafka的物理存储、分区分配、文件管理、文件格式、索引、清理文件、删除事件和清理主题。一.物理存储分区是kafka的基本存储单元,分区无法在多个broker间进行再细分,也无法在同一个broker的多个磁盘上进行再细分。二.分区分配1:分区分配策略:broker间平均分配分区副本 ;确保每个分区的每个副本分布在不同的broker上;如果为broker指定了机架信息,那么尽可能把分区的副本分配到不同的机架的broker上;2:假设存在5个主题,复制系数为3,broker个数为

2020-05-24 15:16:35 296

原创 何时回收线程池中空闲线程(.net)

看书或是查看资料时,都会看到类似于这样一句话:线程池大量空闲线程将在一段时间后自己醒来终止自己以释放资源。那真实的情况是这样吗,现在就来证明一下:一、代码通过代码进行验证,代码很简单,只包含三个函数,如下:1:Main()函数:记录启动程序后,最初的线程数 ;记录启动线程池后的线程数 ;记录随着时间的推移,线程数的变化;2:StartThreadpool()函数通过Task.Run()启动线程池3:GetThreadCount()函数获取进程中所有线程数二、执行结果

2020-05-23 19:03:08 1935 1

原创 深入kafka(一)处理请求

本篇文章将深入kafka,介绍集群成员关系、控制器、复制和处理请求等相关内容。一.集群成员关系介绍集群成员关系前,我们要清楚集群包含哪些成员,所有关系都是围绕这几个成员展开的:1.成员:包含broker、zookeeper和kafka组件。2.关系:broker启动的时候,它通过创建临时节点把自己的ID注册到zookeeperkafka组件订阅zookeeper的/brokers/ids路径,当有broker加入或退出集群时,它就会收到通知kafka组件在broker服务器上安装。二.控

2020-05-17 18:30:12 296

原创 线程开销(.net)

我们经常使用多线程提升程序执行速度,那是不是线程越多越好,显然答案是否定的。因为线程本身也会有不小的开销。开销主要体现在两方面:1、空间开销,2、时间开销空间开销空间开销主要体现在以下四方面:线程内核对象(thread kernel object);线程环境块(thread environment block,TEB);用户模式栈(user-mode stack);内核模式栈(kernel-mode stack);空间开销-线程内核对象1.定义:OS为系统中创建的每个线程都会分配并初始化

2020-05-16 00:42:52 575

原创 揭秘kafka消费者三(再均衡监控器)

本篇文章介绍:再均衡监控器,从特定偏移量处开始处理记录,退出,反序列化器,独立消费者。再均衡监控器将在如下几个方面介绍在均衡监控器:定义:监听失去分区所有权或获取分区所有权;方案:通过subscribe()方法进行监听。参数:ConsumerRebalanceListener实例;ConsumerRebalanceListener:需要实现两个方法3.1:onPartitionsRevoked:在再均衡开始之前和消费者停止读取消息之后被调用,用来提交偏移量;3.2:onPartitionsA

2020-05-10 17:06:41 220

空空如也

空空如也

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

TA关注的人

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