- 博客(108)
- 收藏
- 关注
原创 实习日志1之大模型相关知识概览
当我们想要微调大模型的时候,一个粗略的实验过程无外乎以下几个环节:准备好硬件(GPU)、数据;通过各方面的资讯选中你想要微调的基座模型准备好代码:输入数据 + 模型 -> 在GPU上反复训练训练结束以后,得到训练过程中的checkpoint + 一些log信息根据log信息选一些比较有希望的checkpoint在自己的测试集上推理,获得相应的结果分析结果,获得下一轮实验(数据、训练方案的迭代)思路。
2024-07-26 17:36:14
853
原创 JVM知识点
类加载器负责加载所有的类,其为所有被载入内存中的类生成一个java.lang.Class实例对象。一旦一个类被加载入JVM中,同一个类就不会被再次载入了。正如一个对象有一个唯一的标识一样,一个载入JVM的类也有一个唯一的标识。在Java中,一个类用其全限定类名(包括包名和类名)作为标识;但在JVM中,一个类用其全限定类名和其类加载器作为其唯一标识。类加载器是一个负责加载类的对象。ClassLoader 是一个抽象类。给定类的二进制名称,类加载器应尝试定位或生成构成类定义的数据。
2024-07-16 22:54:40
1021
原创 代理详解之静态代理、动态代理、SpringAOP实现
OverrideSystem.out.println("执行方法前...");System.out.println("执行方法后...");@OverrideSystem.out.println("执行方法前...");System.out.println("执行方法后...");@OverrideSystem.out.println("执行方法前...");System.out.println("执行方法后...");
2024-07-10 00:45:33
1063
1
原创 Spring MVC深入理解之源码实现
*** controller声明*/这个元注解表明注解应该被javadoc或类似的工具记录。也就是说,当你在编写Java文档时,注解的信息会被包含在生成的文档中。这对于理解代码中的注解用途非常有帮助。这个元注解指定了注解的保留策略。意味着这个注解在运行时仍然保留,因此它可以通过反射(Reflection)被读取。这对于那些需要在运行时通过注解来获取信息或行为的框架(如Spring MVC)来说是非常重要的。这个元注解指定了注解可以应用的Java元素类型。
2024-07-09 12:43:21
817
原创 Spring IOC深入理解之源码实现
定义两个注解@Autowired和@Component,SpringIoc中注解用来配置和管理Spring应用中的组件和依赖关系@Target(ElementType.FIELD):这个元注解(meta-annotation)指定了@Autowired注解可以应用的Java元素类型。在这个例子中,它指定了@Autowired和@Component只能应用于字段(FIELD)。
2024-07-08 23:34:09
709
原创 微服务之熔断器
Sentinel (分布式系统的流量防卫兵)是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。· 丰富的应用场景: Sentinel承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即 突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用 应用等。· 完备的实时监控:Sentinel提供了实时的监控功能。
2024-06-10 15:36:28
1135
1
原创 微服务之网关
低层使用的是Spring Boot和Spring Webflux提供的Netty底层环境Gateway 基于异步非阻塞模型性能较高动态路由,能够匹配任何请求属性可以对路由指定 Predicate 断言,和 Filter 过滤器集成Hystrix断路器功能集成 Spring Cloud 服务发现功能支持请求限流功能,支持路径重写功能使用过滤器,可以在请求被路由之前或者之后对请求进行修改过滤器按照请求和响应可以分为两种:Pre类型和Post类型。
2024-06-10 15:14:21
1651
原创 微服务之配置中心
Disconf是一套完整的基于zookeeper的分布式配置统一解决方案,它通过disconf-web管理配置信息,然后将配置的key在Zookeeper上建立节点,disconf-client启动后拉取自身需要的配置信息并监听Zookeeper的节点。此外,Nacos除了提供配置中心的功能,还提供了动态服务发现、服务共享与管理的功能,降低了服务化改造过程中的难度。,对他来说只是一个命令的切换,随你玩,还支持各种注册中心迁移到Nacos,反正一句话,只要你想要的他就有。
2024-06-10 14:37:43
1282
原创 微服务之注册中心
注册中心主要有三种角色:服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。
2024-06-10 14:25:22
751
原创 微服务之负载均衡器
Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon 客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提 供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的负载均衡算法RestTemplate 添加@LoadBalanced注解让RestTemplate在请求时拥有客户端负载均衡的能力@Bean。
2024-06-10 10:40:00
1062
原创 微服务之Nacos(服务注册和配置中心)
对于Nacos配置管理,通过Namespace、group、Data ID能够定位到一个配置集配置集(Data ID)在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含了系统的各种配置信息,例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。每个配置集都可以定义一个有意义的名称,就是配置集的ID即Data ID。配置项配置集中包含的一个个配置内容就是配置项。它代表一个具体的可配置的参数与其值域,通常以key=value 的形式存在。
2024-06-09 23:54:11
1340
原创 微服务之远程调用
HttpClient是一个基于Java的HTTP客户端库,主要用于提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包。- HttpClient是Apache Jakarta Common下的子项目。- 它支持HTTP协议最新的版本和建议。- 发送HTTP请求:HttpClient可以发送GET、POST、PUT、DELETE、HEAD等HTTP请求。
2024-06-09 23:30:44
1646
1
原创 RabbitMQ知识点
延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好的利用RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。
2024-05-20 15:00:33
771
2
原创 docker知识点总结
在Docker中,镜像是一种轻量级、可执行的独立软件包,用于创建Docker容器。它包含了运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件等。Docker镜像类似于虚拟机的镜像,但它是基于层的,每一层都代表Dockerfile中的一条指令。当Docker执行这些指令时,它会创建一个新的层来构建镜像。轻量级:由于采用了分层的文件系统结构,Docker镜像非常轻量级,只包含必要的组件和依赖项,从而减少了存储和传输的开销。
2024-05-14 11:04:50
851
原创 redis深入理解之实战
1.业务需要:由于单台redis内存容量是有限的,无法实现海量的数据实现缓存存储。2.分片机制概述:概念:由多个redis节点协助工作的机制就是redis的分片机制。作用:是为了实现redis扩容。特点:分片机制把该机制中包含的多台redis缓存服务器当做一个整体,即看做一台redis服务器使用。缺点:当redis分片中一个节点宕机,则可能会影响整个服务的运行,redis分片没有实现高可用。目的:解决分布式缓存的问题。即解决了简单hash算法在分布式hash表中存在的动态伸缩等问题。
2024-05-12 21:02:55
706
原创 redis深入理解之数据存储
RedisDatabase Backup file(Redis数据备份文件),也被叫作Redis数据快照。简单的来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件(二进制文件),恢复数据。快照文件称为RDB文件。我们知道 Redis 是单线程程序,这个线程要同时负责多个客户端套接字的并发读写操作和内存数据结构的逻辑读写。
2024-05-10 10:27:13
1146
原创 问题集锦四之SSM框架
Spring DI是Spring框架中非常重要的一部分,它通过外部化依赖关系的方式降低了代码之间的耦合度,提高了代码的可维护性和可测试性。在实际开发中,应根据具体需求和场景选择合适的注入方式,并充分利用Spring容器提供的强大功能来管理应用程序中的对象及其依赖关系。4.Spring 中基于注解如何配置对象作用域?以及如何配置延迟加载机制?在Spring中,基于注解配置对象的作用域(Scope)以及延迟加载(Lazy Initialization)机制是通过使用特定的注解来完成的。
2024-05-01 16:17:56
996
原创 问题集锦三
interface实例化不能不能类一种继承关系,一个类只能使用一次继承关系。可以通过实现多个接口一个类可以实现多个interface数据成员(属性)可有自己的静态的不能被修改即必须是static final,一般不在此定义方法可以私有的,非abstract方法,必须实现不能有私有的,默认是public,abstract 类型变量可有私有的,变量有默认的类型,其值可以在子类中重新定义,也可以重新赋值。
2024-05-01 15:05:47
847
原创 nginx知识点总结
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它可以作为网站静态资源的web服务器,也可以作为其他应用服务器的反向代理服务器。同时,Nginx还具有负载均衡的功能。1.反向代理:是服务器端代理,只要用户访问服务器,都是反向代理,实现业务调用。2.正向代理:是客户端代理,只要用户上网就使用正向代理,实现网络通信。3.整个上网过程都是先正向后反向代理。
2024-04-29 17:28:25
1126
2
原创 项目部署之linux常用操作
①使用netstat命令:netstat -tuln | grep<端口号>②使用ss命令:ss -tuln | grep <端口号>③使用lsof命令:lsof -i :<端口号>
2024-04-28 23:25:46
297
原创 项目部署总结
第一步:上传jdk压缩安装包到服务器第二步:将压缩安装包解压第三步:配置环境变量编辑/etc/profile文件,在文件末尾添加以下内容:第四步:应用环境变量执行以下命令使配置生效:第五步:验证安装:执行以下命令检查JDK版本:使用yum命令一步安装jdk2、安装tomcat第一步:上传tomcat压缩安装包到服务器第二步:将压缩安装包解压第三步:进入conf/server.xml修改端口号8080为80(可忽略)第四步:进入bin目录启动tomcat:./start
2024-04-28 23:05:15
725
原创 项目实战之网络电话本之发送邮件名片和导出word版个人信息
用户管理:分为管理员、和普通用户,设置不同用户的权限电话本信息管理:支持管理员和普通用户对电话本的信息进行增删改操作,模糊查询(根据姓名、地址、单位)文件批量导入:支持管理员通过excel文件批量导入电话本信息分页功能:对电话本信息管理页面支持分页查看电话本分组管理:对电话本进行分组,修改、移动、删除邮件发送名片功能:支持管理员根据电话本信息向用户发送邮件,邮件内容为个人信息名片和附件用户信息导出功能:导出个人用户的用户信息word文档。
2024-04-17 15:44:30
773
原创 实战项目——智慧社区(三)之 门禁管理
①查询出所有的小区信息,下拉列表显示,用于后续判断人脸信息是否与所选小区匹配②人脸识别:调用腾讯人脸识别的API接口,首先判断传入图片是否为一张人脸;其次将这张人脸去服务器的人员库进行比对是否存在这个人员;然后根据这张人脸去数据库查询所属小区和当前选择的小区进行比对,查看当前人脸成员是否为小区成员;最后将数据存入出入登记表(in_out_record)中,判断条件为查看登记表中数据的outTime出时间是否为空,若为空,当前居民进小区;若不为空,当前居民出小区;出入登记表中存入信息,包含时间和图片信息。
2024-04-11 17:19:44
326
1
原创 实战项目——智慧社区(二)之 物业管理
同时由于mybtisPlus中并没有现成的sql用于根据community_id查询相应的居民人数,因此需要编写sql用来查询每个community对于的人数personCnt。①进行程序严谨性判断:根据personId查询person信息,首先判断居民存在与否,然后判断居民是否已经录入了人脸,最后判断居民上传的图片是否为Base64编码的图片,有一个不符合都不进行人脸的录入。查询和搜索居民、查询小区列表、添加居民、修改居民、删除居民,其操作和上述的小区操作相似,这里不再详写。
2024-04-11 02:38:22
693
原创 SSM项目实战——哈哈音乐(四)前台模块开发
对于播放列表播放歌曲,首先通过cookie获取上一次未播放完的歌曲id,然后本次传入的歌曲id列表加上上次的歌曲id列表,变成一个新的歌曲id列表,并将新的歌曲id列表存入cookie中。根据歌曲id列表查询歌曲信息,将其交给paly.jsp页面,进行歌曲播放。实现思路:对于单个歌曲播放功能,直接根据当前传入的歌曲id查询歌曲信息,将歌曲信息传给play.jsp页面进行歌曲播放。启动tomcat后,进入index.jsp页面,发送dofindAll,可以根据条件查询歌曲也可以查询所有歌曲信息。
2024-04-05 17:47:55
666
原创 SSM实战项目——哈哈音乐(三)文件服务器模块开发
创建一个子模块(hami-fie),里面不写任何代码,专门用于文件上传的服务器在hami-file的webapp下创建上传文件资源的文件夹,并引入资源(图片、音频)
2024-04-05 15:11:17
664
原创 SSM实战项目——哈哈音乐(二)后台模块开发
歌曲的增删改查代码生成器都全部生成,不需要添加额外代码,文件上传部分在后续博客(三)中会详细介绍。流派管理提供了分页列表展示、添加流派、搜索流派、修改流派、删除流派的功能。歌曲管理提供了分页列表展示、添加歌曲、搜索歌曲、修改歌曲、删除歌曲的功能。艺人管理提供了分页列表展示、添加艺人、搜索艺人、修改艺人、删除艺人的功能。专辑管理提供了分页列表展示、添加专辑、搜索专辑、修改专辑、删除专辑的功能。除了专辑的增删改查,添加了通过专辑名查看专辑是否存在的功能。通过专辑名查看专辑的service 接口。
2024-04-05 14:03:14
438
1
原创 SSM实战项目——哈哈音乐(一)公共代码模块开发
项目名称:哈哈音乐前台:音乐播放与展示:用户可以在前台浏览和播放音乐,界面提供清晰的音乐封面、标题、歌手、专辑等信息。歌曲搜索:提供搜索功能,用户可以通过关键词搜索歌曲、歌手或专辑。歌曲分类浏览:按照流派、歌手、专辑等分类浏览音乐,方便用户找到自己喜欢的音乐。音乐人展示与搜索:用户可以查看音乐人的详细信息,例如音乐人的简介,歌曲,根据流派、歌手名等查找音乐人后台:音乐、歌手、专辑、流派管理:管理员可以添加、修改、删除音乐、歌手、专辑和流派信息。
2024-04-04 23:40:35
1046
原创 typescript和javascript
TypeScript 是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集。这意味着 TypeScript 代码最终会编译成纯 JavaScript 代码,可以在任何浏览器或 JavaScript 引擎上运行。TypeScript 添加了静态类型系统以及对 ES6+ 语法的支持,但它并不包括任何运行时库或环境,因此它无法独立运行,必须编译成 JavaScript 代码才能执行。
2024-03-29 15:02:20
740
原创 Spring Boot(二)
在WebMvcAuotConfiguration.class中(可以点两次shift全局搜索)1)将所有 /webjars/**,都去 classpath:/META-INF/resources/webjars/ 找资源;webjars:以jar包的方式引入静态资源需要引入依赖2)"/**" 访问当前项目的任何资源,都去(静态资源的文件夹)找映射localhost:8080/abc=== 去静态资源文件夹里面找abc3)欢迎页;静态资源文件夹下的所有index.html页面;被"/**"映射;
2024-03-24 23:42:15
1356
1
原创 Thymeleaf基础知识语法
Thymeleaf是⾯向Web和独⽴环境的现代服务器端Java模板引擎,能够处理HTML、XML、JavaScript、CSS、TEXT、RAW这六种模板。这六种模版模式包含两种标记模板模式(HTML和XML),三种⽂本模板模式(TEXT,JAVASCRIPT和CSS)和⼀个⽆操作模板模式(RAW)。①简单表达式②文字③⽂本操作④算术运算符⑤布尔运算符⑥⽐较和相等运算符⑦条件运算符⑧特殊符号无操作: _
2024-03-19 17:10:08
1863
原创 Spring Boot(一)
虽然自动配置功能非常强大,但 Spring Boot 也提供了灵活的方式来定制和覆盖默认的自动配置行为。排除特定的自动配置类:使用 @EnableAutoConfiguration 注解的 exclude 或 excludeName 属性来排除不需要的自动配置类。属性配置:通过在 application.properties 或 application.yml 文件中设置特定的属性来覆盖默认的配置。
2024-03-17 14:06:27
1179
原创 乐观锁和悲观锁、雪花算法、数据库扩展方式
乐观锁是一种并发控制机制,它持有一种乐观的态度,相信数据冲突发生的概率较低,并允许多个任务并行地对数据进行操作,而不加锁。在乐观锁的机制下,对数据的操作不会立即进行冲突检测和加锁,而是在数据提交时通过一种机制来验证是否存在冲突。乐观锁通常通过版本号(也称为时间戳)实现。每次读取数据时,都会获取当前版本号,并将其与修改前的版本号进行比对。如果两个版本号相同,则认为数据没有被其他任务修改,允许当前任务进行修改操作并更新版本号。
2024-03-13 13:41:23
905
原创 MyBatis-Plus知识点(二)
Repository //用于标识数据访问对象/*** 根据年龄查询用户列表,分页显示* @param page 分页对象 ,xml中可以从里面进行取值 ,传递参数 Page 即自动分页 ,必须放在第一位* @param age 年龄。
2024-03-13 12:41:33
1570
原创 MyBatis-Plus知识点(一)
MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。Mybatis-Plus提供了通用的Mapper和Service,可以在不编写任何SQL语句的前提下,快速的实现单表的增删改查(CURD),批量,逻辑删除,分页等操作。只要把MyBatis-Plus的特性到优秀插件,以及多数据源的配置进行详细讲解。
2024-03-13 12:11:09
818
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人