自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(164)
  • 资源 (1)
  • 收藏
  • 关注

转载 面试必杀技,讲一讲Spring中的循环依赖

Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃不掉

2024-05-22 11:28:20 5

转载 美团一面:碰到过OOM吗?你是怎么处理的?

如果面试被提到了OOM相关的问题,那么面试官主要在意的有哪些呢?

2024-05-22 11:07:46

转载 什么是线程安全? 如何保证线程安全?

随着硬件技术的快速发展(比如多核处理器,超线程技术),我们通常会在代码中使用多线程(比如线程池)来提高性能,但是,多线程又会带来线程安全问题。因此,本文将深入探讨Java中的线程安全问题。

2024-05-22 10:19:24 3

原创 Spring Boot整合MybatisPlus逆向工程快速生成代码

MyBatis-Plus是MyBatis的增强工具,Generator通过MyBatis-Plus快速生成Entity、Mapper、Mapper XML、Service、Controller等模块的代码,方便快捷,并且支持MySQL/PostgreSQL。

2024-05-11 11:18:15 283

原创 iframe的基本用法

博主使用postMessage API传递参数时,应用B第一次接受的参数为空,之后接收的参数正常了,后来换成URL传递参数,应用B能够快速准确的接受到参数,因此推荐大家优先使用URL进行参数传递,简洁高效。我的功能Demo页面如下图所示,弹框样式自主可控,并且实现了参数传递。

2024-05-08 17:15:13 767

转载 1.8w 字详解 SQL 优化

本文涉及三部分:SQL介绍SQL优化方法SQL优化实例

2024-03-18 17:07:59 34

转载 分布式架构最全详解(万字图文总结)

分布式架构是指将系统的各个组件和服务分布在多台独立的计算机节点上,通过网络进行通信和协作,以实现高性能、高可用性和可伸缩性的系统架构。

2024-03-12 00:18:18 1444

转载 redis 分布式锁进阶篇

本文针对于 redis 分布式锁中存在的过期时间不精确以及数据弱一致性问题提出了对应的解决方案——看门狗机制和红锁机制. 内容介绍均分为原理分析和源码展示两种方式.

2024-03-12 00:06:47 60

转载 工作中常用的6种设计模式

本章我们只谈常用的几种设计模式,通过设计模式的理念、规约、到应用,理解实战中如何正确使用设计模式,不论对面试还是实际工作中都有益处。规定:软件中的对象(类、模块、函数等等)应该对于扩展是开放的,但是对于修改是封闭的。换句话说,一个实体是允许在不改变它的源代码的前提下变更它的行为。一个请求会按照定义的拦截器顺序,逐个被处理,直到找到对应的处理器或者遍历完所有的拦截器。在用户登录流程中,可能用到拦截器做鉴权校验,日志记录接口参数等,使用了一些常见的设计模式。然后,在Spring的配置中启用事件发布功能。

2024-03-12 00:00:59 33

转载 大模型开发 - 一文搞懂 Function Calling(函数调用)

自然语言接口(NLI)允许用户通过日常语言与软件和设备交互,无需特定命令或语法。

2024-03-11 23:29:19 2575

转载 向量搜索和Faiss 使用指南

FAISS 是 Facebook 推出的向量搜索库,里面提供了高性能的向量搜索工具。

2024-01-07 20:52:13 211

转载 java http长连接_记录一次http网络超时的排查过程

最终我们发现商户是三台服务器一起请求的,而三台服务器应该是经过nat后是同一个ip,那么很可能是触发了tcp中的一个时间戳的限制,也就是如果同一个ip的请求会记录其时间戳并进行比较,下次发送握手报文的时候,如果时间戳比上一次请求时间小,那么会将该握手报文丢弃,如果同一个ip是同一个机器一般不会有问题,然而三台机器相同ip但是时间戳可能不相同,如果在大批量发送请求的时候很可能会触发该规则。经过排查后,都不是上面两个原因,目前现象ping包是正常的,执行以下nc命令 ,偶尔会失败,大部分时候成功。

2023-12-27 11:33:32 144

转载 Http持久连接与HttpClient连接池

HTTP协议通过持久连接的方式,减轻了早期设计中的过多连接问题持久连接有两种方式:HTTP/1.0+的Keep-Avlive与HTTP/1.1的默认持久连接HttpClient通过连接池来管理持久连接,连接池分为两个,一个是总连接池,一个是每个route对应的连接池HttpClient通过异步的Future来获取一个池化的连接。

2023-12-27 11:11:13 100

转载 分分钟搞懂布隆过滤器,亿级数据过滤算法你值得拥有!

布隆过滤器(Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。布隆过滤器(Bloom Filter)本质上是由长度为 m 的位向量或位列表(仅包含 0 或 1 位值的列表)组成,最初所有的值均设置为 0,如下图所示。向布隆过滤器中添加 key 时,会使用多个 hash 函数。

2023-12-05 16:13:56 153

转载 chatglm基于ptuning微调训练

在这次尝试中,通过对模型的微调和推理过程的体验,我们发现了一些问题和改进的方向。虽然离贾维斯的智能管家还有一定距离,但这个探索让我们更深入地了解了人工智能的奥秘,并为未来的学习和探索积累了宝贵的经验。在实践中,我们使用了ChatGLM-6B模型,并经历了模型的训练和推理过程。训练模型消耗了相当多的时间,但也让我们体会到了模型训练的复杂性和挑战性。虽然在推理阶段,模型生成了一些内容,但体验效果并不完美,仍需要进一步改进和优化。

2023-11-23 15:23:58 97

转载 Java开发必安装的插件Maven Helper

Maven 是一个非常流行和强大的 Java 项目管理工具,它可以帮助我们自动化地处理项目的构建、依赖、文档、测试、发布等各个环节。然而,Maven 项目中也经常会遇到一些依赖问题,比如依赖冲突、依赖缺失、依赖过多等,这些问题会影响项目的正常运行和性能。为了解决这些问题,我们需要一个能够分析和优化 Maven 项目依赖关系的工具,而这个工具就是 Maven Helper 插件。Maven Helper 插件是一款可以帮助你解决 Maven 项目的依赖问题的 IntelliJ IDEA 插件。它可以在 pom

2023-11-15 22:13:30 340

转载 什么是SPI,SPI和API有什么区别?

什么是SPI,SPI和API有什么区别?

2023-10-24 09:58:03 92

原创 上瘾(让用户养成使用习惯的四大产品逻辑)读书笔记

2023-10-21 17:29:06 40

转载 MySQL MVCC实现原理

这里介绍了 MVCC 在 READ COMMITTD 、 REPEATABLE READ 这两种隔离级别的事务在执行快照读操作时访问记录的版本链的过程。这样使不同事务的 读-写 、 写-读 操作并发执行,从而提升系统性能。READ COMMITTD 在每一次进行普通SELECT操作前都会生成一个ReadViewREPEATABLE READ只在第一次进行普通SELECT操作前生成一个ReadView,之后的查询操作都重复使用这个ReadView就好了。

2023-09-17 12:14:35 79

转载 十种经典排序算法详解

内部排序:数据记录在内存中进行排序。外部排序:因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。插入排序希尔排序选择排序冒泡排序归并排序快速排序堆排序基数排序等,本文只讲解内部排序算法。图片名词解释:n:数据规模k:“桶” 的个数In-place:占用常数内存,不占用额外内存Out-place:占用额外内存。

2023-09-17 08:37:06 48

原创 # EasyExcel mac或者windows下读取EXCEL正常,Linux服务器下报ExcelAnalysisException:java.lang.AbstractMethodError 异常

网上搜了很多帖子,有说poi依赖冲突的,有说linux上无对应字体的,但是都不生效。最新 3.3.2,更新pom依赖,重新部署到Linux 服务器上问题就解决了。

2023-09-15 15:46:07 199

转载 Spring自定义参数解析器设计

RequstBody、@RequstParam 这些注解是不是很熟悉?我们在开发Controller接口时经常会用到此类参数注解,那这些注解的作用是什么?我们真的了解吗?前台传参参数格式//***但如果是服务接收参数的方式改变了,如下代码,参数就不能成功接收了,这个是为什么呢?//***如果上面的代码稍微改动一下注解的使用并且前台更改一下传参格式,就可以正常解析了。前台传参参数格式http://***?无//***

2023-09-09 21:07:14 68

转载 传输层篇:既生瑜何生亮-UDP和TCP的对比

本文主要是对比了UDP协议和TCP协议,明白UDP是一个无连接、不可靠的协议,拼命传输上层应用报文达到最大传输速度即可,适合于实时应用,比如IP电话、视频会议等知识即可。而TCP是实现了面向连接、可靠的传输服务,需要支持可靠传输、流量控制、拥塞控制等服务,因此TCP比较复杂,也是传输层中需要花费佷多精力去学习和探讨的对象,后续文章将对TCP进行详细的学习。

2023-09-06 14:37:11 278

转载 Stream流畅编程:优雅而高效的代码创作

而映射操作本身的优点在于,可以通过简单的函数变换实现对原始数据的转换,减少了繁琐的循环操作,提高了代码的可读性和维护性。需要注意的是,过滤操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。需要注意的是,映射操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。需要注意的是,排序操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。需要注意的是,截断操作返回的是一个新的 Stream 实例,原始的 Stream 不会受到改变。

2023-08-30 23:29:10 54

转载 Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理?

这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口,而基于 Cglib 的动态代理并不需要被代理对象有接口。那么小伙伴们不禁要问,Spring 中的 AOP 是怎么实现的?是基于 JDK 的动态代理还是基于 Cglib 的动态代理?

2023-08-30 22:27:57 70

转载 既然有HTTP协议,为什么还要有RPC

纯裸TCP是能收发数据,但它是个无边界的数据流,上层需要定义消息格式用于定义消息边界。于是就有了各种协议,HTTP和各类RPC协议就是在TCP之上定义的应用层协议。RPC本质上不算是协议,而是一种调用方式,而像gRPC和thrift这样的具体实现,才是协议,它们是实现了RPC调用的协议。目的是希望程序员能像调用本地方法那样去调用远端的服务方法。同时RPC有很多种实现方式,不一定非得基于TCP协议。从发展历史来说,**HTTP主要用于b/s架构,而RPC更多用于c/s架构。

2023-08-21 22:22:39 45

转载 万字长文漫谈分布式事务实现原理

• 上篇:万字长文漫谈分布式事务实现原理• 下篇:从零到一搭建 TCC 分布式事务框架今天分享的是其中的上篇,下面正式开始.RocketMQ 是阿里基于 java 实现并托管于 apache 基金会的顶级开源消息队列组件,其中事务消息 TX Msg 也是 RocketMQ 现有的一项能力. 本章将主要基于 RocketMQ 针对事务消息的实现思路展开介绍.RocketMQ github 地址:https://github.com/apache/rocketmq。

2023-08-17 23:39:22 921

转载 MySQL死锁及其避免方法

MySQL中的并发控制是确保多个用户并发访问数据库时数据一致性的重要机制。锁定是其中关键的组成部分,通过对数据进行加锁,来控制并发访问的顺序和互斥性。死锁是指两个或多个事务彼此等待对方释放资源,导致无法继续执行的情况。死锁会导致系统性能下降,甚至完全无响应,严重影响数据库的可用性和可靠性。

2023-08-10 23:14:25 618

转载 一文搞懂Redis架构演化之路

总结一下,我们是如何从 0 到 1,再从 1 到 N 构建一个稳定、高性能的 Redis 集群的,从这之中你可以清晰地看到 Redis 架构演进的整个过程。数据怕丢失:持久化(RDB/AOF)**恢复时间久:**主从副本(副本随时可切)故障手动切换慢:哨兵集群(自动切换)读存在压力:扩容副本(读写分离)写存在压力/容量瓶颈:分片集群分片集群社区方案:Twemproxy、Codis(Redis 节点之间无通信,需要部署哨兵,可横向扩容)分片集群官方方案。

2023-08-08 22:16:01 55

转载 一个SpringBoot 项目能处理多少请求?

这篇文章是基于“一个 SpringBoot 项目能同时处理多少请求?”这个面试题出发的。但是经过我们前面简单的分析,你也知道,这个问题如果在没有加一些特定的前提条件的情况下,答案是各不一样的。比如我再给你举一个例子,还是我们的 Demo,只是使用一下 @Async 注解,其他什么都不变:再次启动项目,发起访问,日志输出变成了这样:同时能处理的请求,直接从 Tomcat 的默认 200 个变成了 8 个?因为 @Async 注解对应的线程池,默认的核心线程数是 8。之前写过这篇文章。

2023-07-31 12:20:16 52

转载 在阿里云部署、微调chatGLM,配置langchain chatGLM2的过程

至此,我们完成了chatGLM的部署、微调、chatGLM2的部署以及langchain chatGLM2的部署和使用,以后继续给大家分享有趣的东西 作者:Joker大金宝 https://www.bilibili.com/read/cv24931671/ 出处:bilibili。准备语料或下载官方语料(官方语料下载地址:https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?

2023-07-24 22:23:40 922

转载 Spring Boot 项目中实现策略模式

策略模式是一种行为模式,可以替代大量if-else,使自己的代码更加优雅,更加容易进行扩展和兼容处理,可以帮我们解决具有同类但是行为有异的问题。使用策略模式可以把if-else语句很好的优化掉,大量的if语句的使用会让代码难以扩展和维护,使用策略模式可以很好的满足隔离性和扩展性,可以应对更多易变的需求。github项目链接。

2023-07-13 09:02:44 848

转载 39张支付经典

以下课件挑选自不同专栏,小节编号之间没有关系,每页课件之间没有关系,单独看每一页。系统架构、流程都顺了,那不妨看清楚单据细节,甚至每一个字段。做再多事情,都不如说清楚事情,把事情像奥斯卡电影已经说出来。任何一个项目案例,每一个环节都要讲到,才能形成认知的闭环。在流程里做好每一个分类的处理,也是校验流程模式的方法之一。每一个知识点都应该剖析其概念,阐述其作用,明白其落地。任何产品形态都是选择的结果,基于价值做选择,错不了。都不是独立存在,相互依赖,必须了解事物之间的关系。

2023-05-26 17:11:01 80

转载 如何防止重复支付?

大家好,我是苏三,想必大家对在线支付都不陌生,今天和大家聊聊如何防止订单重复支付。我们来看看,电商订单支付的简要流程:订单钱包支付流程:这一步虽然不是直接的支付起点,但是支付相关的金额等等信息都来自结算,此时订单的状态是未支付:用户选择申请支付,客户端调用支付服务,此时在系统内产生一笔支付流水,这笔流水的状态是未支付:支付服务调用三方支付,通常这种钱包类的支付,在发起支付这一步,会响应一些支付的链接,客户端会对链接进行对应的处理。

2023-05-23 18:26:37 223

转载 单例模式的七种写法,你都知道吗?

从使用的角度来讲,如果不需要懒加载的话,直接饿汉式就行了;如果需要懒加载,可以考虑静态内部类,或者尝试一下枚举的方式。从面试的角度,懒汉式、饿汉式、双重校验锁饿汉式,这三种是重点。双重校验锁方式一定要知道指令重排是在哪,会导致什么问题。

2023-02-20 15:51:58 116

转载 微服务系列 2:微服务化框架的模型和治理能力设计

在微服务体系下,我们的服务治理,首先要做的就是针对我们大量的服务怎么更好的进行管理,保证我们系统在运行过程中能够自动化的发现问题并自动解决一些问题,从而使我们的系统更加的稳定。而这些治理的策略,至少要包括服务的限流、降级、容错,以及服务的弹性伸缩、灰度发布,还有自动化的运维。

2023-01-23 12:52:02 383

转载 微服务系列 1:服务化框架落地的挑战和核心需求

微服务架构(Microservice Architect)是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

2023-01-23 10:47:40 359

转载 统一团队的技术方案设计模板

一句话概括方案的亮点,比如说:高性能、可扩展、双写、主从分离、分库分表、扩容等。

2023-01-22 12:33:34 141

转载 从单体架构到微服务架构的那些事

尤其对于互联网软件产品,不变的是变化,而且产品上线后面向用户,可能功能并不满足市场需求,甚至是无用的,所以一开始就在技术层面考虑过多,追寻完美不变的方案,是不现实的,而且很容易因过度设计,导致实现过于复杂,增加太多其实不必要的工作量,从而影响项目按时交付,以及后期应对需求变化的调整效率,进而挫伤整个团队士气。因此,这项拆分重构的工作,一方面要按照微服务架构,把核心模块间的调用改为RPC方式,把非业务部分放到网关等,还要做大量业务类、接口、方法重新编写,以及删除重复代码等重构工作,很有挑战。

2023-01-20 22:27:01 336

转载 146.LRU 缓存

那么,什么样的数据,我们判定为「有用的」的数据呢?首先要接收一个 capacity 参数作为缓存的最大容量,然后实现两个 API,一个是 put(key, val) 方法存入键值对,另一个是 get(key) 方法获取 key 对应的 val,如果 key 不存在则返回 -1。LRU 的全称是 Least Recently Used,也就是说我们认为最近使用过的数据应该是是「有用的」,很久都没用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。链表有顺序之分,插入删除快,但是查找慢。

2023-01-04 23:22:34 194

SpringMVC 用户登录、商品浏览、交易下单电商项目.rar

慕课网公开课,SpringBoot构建电商基础秒杀项目源码复现,包含SQL、前端代码,用户登录注册、商品添加和详情列表、交易下单模块功能实现,是新人学习Springboot很好的入门课程,代码全部自己复现,亲测可用。

2020-08-14

空空如也

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

TA关注的人

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