自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白羊座的橙子

白羊座的橙子的学习笔记

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

原创 四、RocketMQ应用

顺序消息指的是,严格按照消息的发送顺序进行消费的消息(FIFO)。延时消息的延迟时长不支持随意时长的延迟,是通过特定的延迟等级来指定的。

2024-05-19 18:06:38 797 1

原创 三、RocketMQ工作原理

Rebalance即再均衡,指的是:⼀个Topic下的多个Queue在同⼀个Consumer Group中的多个Consumer间进行重新分配的过程。Rebalance机制的本意是为了提升消息的并行消费能力。由于⼀个队列最多分配给⼀个消费者,因此当某个消费者组下的消费者实例数量大于队列的数量时,多余的消费者实例将分配不到任何队列当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响,那么这个消费过程就是消费幂等的。

2024-05-18 12:14:36 776

原创 十二、泛型

一、什么是泛型二、为什么需要泛型?三、自定义泛型结构1、泛型类2、泛型方法四、泛型在继承上的体现泛型就是定义类、接口时通过一个标识表示类中某个属性的类型或者是方法的返回值、参数类型。这个类型参数将在使用时确定泛型方法:在方法中出现了泛型结构,泛型参数与类的泛型参数没有任何关系(泛型方法所属的类是不是泛型类都不要紧)访问权限 返回方法 方法名(泛型标识 参数名称) 抛出异常。

2024-05-05 16:34:43 212

原创 十四、网络编程

通过 URL 我们可以访问 Internet 上的各种网络资源,比如最常见的 www,ftp 站点。URL: uniform resource locator 统一资源定位符,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。UDP数据通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接收方的连接。如同发快递包裹一样。

2024-05-03 21:45:58 1291 6

原创 七、Google Protobuf

Protobuf全称Google Protocol Buffers,是一种轻便高效的结构化数据存储格式。可以用于结构化数据串行化(序列化)。它很适合做数据存储或者RPC的数据交换格式。上述代码存在的问题: 服务解码的时候只能对 StudentPOJO.student对象进行解码。通过 proto.exe 编辑器根据 xxx.proto文件自动生成java文件。支持跨平台、跨语言;protobuf 使用示意图。netty提供的编码器。netty提供的解码器。

2024-05-02 17:24:18 218 1

原创 黑马 - websocket搭建在线聊天室

websocket对象创建websocket对象相关事件websocket 对象提供的方法## 2、服务端apiTomcat 的7.0.5版本开始支持 websocket , 并且实现了Java websocket 规范。Java websocket 应用由一系列的 Endpoint组成。Endpoint 是一个java对象,代表websocket连接的一段。对于服务端,我们可以视其为处理具体websocket消息的接口。

2024-05-01 23:03:56 1296 1

原创 Arthas进阶

很多时候我们都知道一个方法被执行,但这个方法被执行的路径非常多,或者你根本就不知道这个方法是从那里被执行了,此时你需要的是 stack 命令。观察当前对象中的属性,如果想查看方法运行前后,当前对象中的属性,可以使用target关键字,代表当前对象。这里重点要说明的是观察表达式,观察表达式的构成主要由ognl 表达式组成,所以你可以这样写 "如果方法调用的次数很多,那么可以用-n参数指定捕捉结果的次数。这里输出结果中,第一次输出的是方法调用前的观察表达式的结果,第二次输出的是方法返回后的表达式。

2024-04-30 22:21:41 480

原创 Arthas基础

反编绎时只显示源代码,默认情况下,反编译结果里会带有ClassLoader信息,通过–source-only选项,可以只打印源代码。1、在d:\下创建目录arthas,在windows命令窗口下,使用curl命令下载阿里服务器上的jar包,大小108k。删除arthas安装目录下的 .arthas 和 logs/arthas logs/arthas-cache。2、使用java启动arthas-boot.jar,来安装arthas,大小约10M。“Search-Class” 的简写,这个命令能搜索出。

2024-04-29 21:09:42 542

原创 二、RocketMQ的安装与启动

Broker节点为了证明自己是活着的,为了维护与NameServer间的长连接,会将最新的信息以心跳包方式上报给NameServer,每30秒发送一次心跳。NameServer中有⼀个定时任务,每隔10秒就会扫描⼀次Broker表,查看每一个Broker的最新心跳时间戳距离当前时间是否超过120秒,如果超过,则会判定Broker失效,然后将其从Broker列表中剔除。集群模式:该模式下创建的Topic在该集群中,所有Broker中的Queue数量是相同的。RocketMQ的路由发现采用的是Pull模型。

2024-04-27 22:17:36 8

原创 十一、集合

集合和数组都是对多个数据进行存储操作的结构,称为Java容器。Set接口是Collection的子接口,set接口没有提供额外的方法Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个Set 集合中,则添加操作失败Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals() 方法。

2024-04-25 23:12:33 803

原创 【链表】1移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。创建虚拟节点指向头结点,这样就不需要对头结点单独处理了。

2024-04-12 23:45:04 208

原创 【数组】5螺旋矩阵

给定⼀个正整数 n,⽣成⼀个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正⽅形矩阵。在循环遍历每一条边的时候,⽽求解本题依然是要坚持。

2024-04-12 23:01:39 260

原创 4-10 面经

● 阻塞问题:在二阶段提交的第二阶段中,如果协调者(Transaction Coordinator)在等待参与者(Transaction Participants)的提交或者回滚响应时发生故障,会导致参与者长时间阻塞,资源无法释放,可能引发性能问题和系统可用性问题。● 数据不一致:在二阶段提交中,如果在准备阶段某个参与者发生故障,或者提交阶段中协调者发生故障,可能导致部分参与者已经提交事务,而其他参与者尚未提交,从而引发数据不一致性问题。在统计直播间的人员流水信息时,会将观众进入,离开的数据分表入库。

2024-04-11 20:55:27 632

原创 【Java8新特性】四、强大的Stream api

一、了解Stream二、流(stream)到底是什么?三、Stream操作的三个步骤四、创建Stream的四种方式五、Stream 的中间操作1、筛选和切片2、map 映射3、排序六、Stream 的终止操作1、查找和匹配2、归约3、收集。

2024-04-10 23:27:58 779

原创 【Java8新特性】三、方法引用和构造器引用

注意:需要调用的构造器的参数列表要与函数式接口中抽象方法的参数列表保持一致。方法引用:使用操作符 “::” 将方法名和对象或类的名字分隔开来。格式:className::new。,可以使用方法引用!

2024-04-10 21:00:13 277

原创 【Java8新特性】二、函数式接口

只包含一个抽象方法的接口,称为函数式接口。你可以通过 Lambda 表达式来创建该接口的对象。我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式接口。

2024-04-09 12:20:22 371

原创 【Java8新特性】一、Lambda表达式

Lambda是一个匿名函数,可以理解为一段可以传递的代码,将代码像数据一样进行传递,可以写出更加简介、更加灵活的代码。Lambda表达式的参数列表的的数据类型可以省略不写,因为JVM编译期可以通过上下文推断出数据。java8中引入了一个新的操作符 “->”,该操作符称为箭头操作符或者Lambda操作符。有两个以上的参数,有返回值,并且Lambda 体中有多条语句。System.out.println(“函数式接口”);若左侧只有一个参数,那么左边的 ()可以不写。有一个参数,并且无返回值。

2024-04-09 12:01:32 375

原创 十五、Java反射机制

反射允许程序在执行期间借助于反射api获取任何类的内部信息,并能直接操作任意对象的内部属性及方法当字节码文件加载到jvm中成为一个运行时类,这个运行时类就是 Class的一个实例。

2024-04-08 17:47:50 553

原创 十、注解

加在包,类, 构造器, 方法, 成员变量, 参数, 局部变量声明上面的特殊标记就称为注解未来的开发模式都是基于注解的。框架 = 注解 + 反射 + 设计模式。/*** 自定义注解*/// 声明注解属性自定义注解使用 @interface 定义注解的成员变量后面需要携带 ()注解的成员变量的类型只能是八种基本数据类型、String类型、Class类型、enum类型、Annotation类型、以上所有类型的数组。

2024-04-08 16:44:57 866

原创 【算法-数组】有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。不停地比较首尾元素平方的大小,并将较大的放到一个新的结果数组中。解释:平方后,数组变为 [16,1,0,9,100]输入:nums = [-4,-1,0,3,10]排序后,数组变为 [0,1,9,16,100]空间复杂度 o(n) 时间复杂度o(n)输出:[0,1,9,16,100]

2024-04-07 23:18:22 237

原创 【算法-数组】移除元素

循环匹配,每次匹配到就将数组匹配到的元素的后面元素向前移动一位。【注意】 注意最后一位元素,避免数组越界。

2024-04-07 22:49:53 136

原创 【图灵】MyBatis插件开发

指定拦截上述四大对象的哪个方法@Component@Overridereturn res;// 或者source的类型Class

2024-04-07 12:58:17 431

原创 【算法-数组】二分查找法

当 区间为 [1,1] 时,看 while(1

2024-04-06 23:43:26 278

原创 @Order和@DependsOn的区别

在Spring中创建A对象的时候加上DependsOn(“b”) 注解,可以看到Bean创建的顺序发生了改变。没有加 @order的时候,可以看到 bean的注入顺序就等于 bean的创建顺序。可以看到Bean的创建顺序没有改变,但是iList中Bean的注入顺序改变了。类 A B 都实现了接口 I ,且 A B都由Spring容器创建并且管理。在 controller中对 List。list进行依赖注入。添加 @Order注解。

2024-04-04 15:55:27 342

原创 InitializingBean是什么以及如何使用?

当Spring容器实例化Bean并完成依赖注入后,在初始化阶段,容器会调用该方法来执行Bean的初始化逻辑。InitializingBean是Spring框架提供的一个接口,用于。执行特定的初始化逻辑。

2024-04-01 22:15:27 223

原创 七、API的⽅式解决Mybaits事务

我们现在确实使⽤了seata的XA解决了分布式事务问题 但是这种⽅式解决是硬编码的⽅式解决的。我们项⽬中如果分布式事务⽐较多 难道每个类中 都要写这些代码?将数据源改为 DataSourceProxyXA。

2024-03-31 17:08:29 178

原创 六、Seata分布式事务框架

seata是由阿⾥巴巴开发的⼀款开源的分布式事务解决⽅案。seata致⼒于在微服务架构中提供⾼性能和简单易⽤的分布式事务服务,seata为开发者提供了 AT、TCC、Saga和XA四种服务模式。

2024-03-31 16:19:33 243

原创 四、XA强⼀致性JDBC实战

4.1 环境搭建4.2 使用XA解决事务4.3 存在的问题。

2024-03-31 15:38:39 155

原创 三、强一致性介绍

相关特点强⼀致性解决⽅案要求在任何时间点,任何时刻查询,参与全局事务的各个节点的数据都必须是⼀致的强⼀致性解决⽅案在实际⽣产环境中 银⾏系统⽤的⽐较多,因为银⾏对⾦额数据的⼀致性要求⽐较⾼⽽在其他对⼀致性要求不是特别⾼的系统中 很少会被⽤到解决思想DTP模型2PC⼆阶段提交模型。

2024-03-31 11:51:05 725

原创 二、分布式事务

一组操作会产⽣多个数据库session会话 此时就会出现分布式事务。

2024-03-31 10:59:45 636

原创 【算法】动态规划

动态规划,英⽂:Dynamic Programming,简称DP,如果某⼀问题有很多重叠⼦问题,使⽤动态规划是最有效的。动态规划中每⼀个状态⼀定是由上⼀个状态推导出来的。

2024-03-29 00:03:09 370

原创 五、Elasticsearch 集成

Spring Data 是一个用于简化数据库开发的开源框架。其主要目标是使得对数据的访问变得方便快捷,Spring Data 可以极大的简化操作数据库的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了 CRUD 外,还包括如分页、排序等一些常用的功能。Spring Data Elasticsearch 基于 spring data API 简化 Elasticsearch 操作,将原始操作Elasticsearch 的客户端 API 进行封装。

2024-03-27 18:00:45 1037

原创 BeanFactoryPostProcessor是什么以及如何使用?

读取并修改 bean 的定义(例如,可以修改 bean 的属性值)。这意味着 BeanFactoryPostProcessor。

2024-03-26 11:25:47 363

原创 BeanPostProcessors是什么以及如何使用?

实现 BeanPostProcessor 接口:创建一个类实现 BeanPostProcessor 接口,并实现接口中的两个方法:postProcessBeforeInitialization 和 postProcessAfterInitialization。注册 BeanPostProcessor:将你的 BeanPostProcessor 实现注册为 Spring 容器中的一个 bean,这样 Spring 就能够识别并应用它。是指属性依赖注入过后!

2024-03-26 10:48:31 910

原创 四、Elasticsearch 进阶

在一个网络 / 云的环境里,失败随时都可能发生,在某个分片/节点不知怎么的就处于离线状态,或者由于任何原因消失了,这种情况下,有一个故障转移机制是非常有用并且是强烈推荐的。幸运的是,在其它节点上存在着这两个主分片的完整副本, 所以新的主节点立即将这些分片在 Node 2 和 Node 3 上对应的副本分片提升为主分片, 此时集群的状态将会为yellow。至于一个分片怎样分布,它的文档怎样聚合和搜索请求,是完全由 Elasticsearch 管理的,对于作为用户的你来说,这些都是透明的,无需过分关心。

2024-03-20 16:27:32 804

原创 三、Elasticsearch 环境

2024-03-20 14:44:09 100

原创 二、Elasticsearc入门

有了索引库,等于有了数据库中的 database。接下来就需要建索引库(index)中的映射了,类似于数据库(database)中的表结构(table)。默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。在 Postman 中,向 ES 服务器发 DELETE 请求 :http://127.0.0.1:9200/shopping/_doc/1。具体来说,当你有多个查询条件,并希望匹配任何一个条件的文档时,可以将这些条件放在 should 数组中。

2024-03-20 14:35:38 548

原创 Java 的几种文件拷贝方式

Files.copy方法在Java中是用来复制文件的一种高级操作,它是基于Java NIO(New Input/Output)的文件API实现的。需要注意的是,在某些操作系统和文件系统中,transferTo 方法可能会限制传输的最大字节数,因此在实际使用中可能需要进行分块传输。使用FileInputStream和FileOutputStream是实现文件拷贝的一种直观且简单的方法,尽管它不如NIO提供的Files.copy方法高效,但在某些情况下仍然非常有用。

2024-03-19 15:26:18 822

原创 限流 - 滑动窗口算法

一、工作原理二、优缺点三、应用场景四、滑动窗口算法实现Java demo滑动窗口算法是一种动态的限流策略,它相比固定窗口算法提供了更加平滑和精确的流量控制。滑动窗口通过将时间窗口划分为更小的单位,能够更灵活地响应流量的变化,减少因固定窗口切换时可能出现的流量峰值。

2024-03-18 14:20:30 744

原创 什么是伪共享,如何避免?

目录1、cpu的三级缓存2、什么是伪共享?3、如果解决伪共享?1、cpu的三级缓存2、什么是伪共享?3、如果解决伪共享?

2024-03-13 20:11:43 341

空空如也

空空如也

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

TA关注的人

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