自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ostkakah的博客

专升本学长

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

原创 在线人数统计业务设计(场景八股文)

最开始的时候,想到的就是使用mysql直接实现,但是明显在技术的选型上就不太合理,假设一天有十万人上下线,那么一天就会十万条以上的数据,一个月下来就是300w条数据,一年下来就是3000w的数据,虽然可以配合定时任务定期删除的旧数据。因为涉及到用户的上下线的操作,所以就存在大量的打db操作。不同的类型也是通过不同的定时任务来计算出来的。在当经的网站中,在线人数的实时统计已经是一个必不可少的模块了,并且该统计功能最好能够按不同的时间间隔做的统计,现在需要你设计一个在线人数统计的模块,你应该怎么进行设计的呢?

2025-04-27 23:25:06 702

原创 Aop +反射 实现方法版本动态切换

其实这个切换模式准确的来讲用到了:AOP + 反射 来实现的,因为目前就考虑两种数据库的方式,如果未来使用了其他的数据库,那基本上代码的实现思路基本没有变,最终我们只需要在apollo上切换设置就可以动态的实现不同版本的方法的切换。

2025-02-21 15:51:59 372

原创 JAVA接口机结构解析

在Java项目中,接口机通常指用于与外部系统进行数据交互的中间层,负责处理请求和响应的转换、协议适配、数据格式转换等任务。接口机的结构。

2025-02-07 10:40:00 922

原创 dubbo+Zookeeper微服务方案入门

比如现在有三个服务器,前一半服务器在做投票的时候都会将票投给事务id最大的那个服务器,第一个服务器会将票投给自己,但是呢,在第二个服务器做投票的时候,服务器一发现服务器二的事务id更大,就会将票投给服务器二,以此类推。:当发生网络波动的时候,master节点中的心跳没有被哨兵收到,此时哨兵就会认为其客观下线,会在从节点中选择新的master节点,此时就会导致旧的master中新的数据未被同步就丢失的情况,最终导致服务的脑裂。当有新的服务器节点进入时,会最自动变成从节点并和主节点做数据的同步。

2024-11-25 08:54:16 691 1

原创 解决mysql查询时条件字符串无法区分大小写

最近在修数据库数据的时候,业务上要求我们需要将用户身份证字段中尾号为x的数据,将其都转换成大写,为此我编写了一个sql语句。在查询结果的时候,会发现大写的X对应的数据也会被查询出来,这样子就会导致我们修改数据的时候变的非常的麻烦。我们只需要在查询的字段值之前加上关键字 BINARY即可。最终我们就可以查询到需要的数据。主要的原因:默认的编码格式是不区分大小写的,为此我们需要修改sql语句。

2024-11-15 11:03:10 396

原创 2025最新前端八股文(快速版)

2.当数据发生改变的时候,vue会生成新的虚拟dom树并和旧的虚拟dom进行比较,采用diff算法来实现的,比较到两个虚拟dom的不同位置,最终将这个不同的数据更新到真实的dom中,减少了不必要的真实dom操作。1.保证数据渲染的性能,当我们设置了key的唯一标识的时候,集合数据发生修改的时候,vue会尽可能的使用原来的组件进行更新(而不是直接销毁组件),通过key来锁定对应的节点。1.Model:数据层,主要就是负责数据的存储和处理操作,就比如在Vue中data中的数据,向后端发送请求获取的数据操作。

2024-10-16 15:45:37 1306

原创 java.lang.NoClassDefFoundError: kotlin/Result解决方案

在idea2021之后,kotlin都使用远程仓库(kotlinx-coeouties-core),会导致和我们导入的kotlin的内容冲突,最终找不到kotlin,在定位到问题发生出后,解决方案也就自然浮出水面了。在控制窗口上虽然报错是找不到对应的class,但是呢在我们导入kotlin的后,还是报相同的异常,在网上查找了各种资料,都没有解决方案。在setting中的Debugger中将 Disable coroutine agent,禁用远程库调用。

2024-10-09 13:49:10 1034

原创 若依使用(二次开发)

将生成的前后端代码复制到我们的前后端代码中。将main中的文件放到子项目中的main中,将vue中的代码存放到前端项目的views中。2.将设计好的数据库导出成sql文件,导入到对应的数据库中,启动若依项目并执行代码生成。将子项目的依赖添加到主pom.xml中或者添加到rouyi-admin的pom中。1.创建子项目到RouYi-springboot中,添加对应的依赖。,并将当前子项目的依赖添加到RouYi-admin中。添加到新建子项目中的pom.xml中。填写对应的参数,生成修改后的文件。

2024-10-05 17:35:18 830

原创 Error running Application.Command line is too long

本质上就是执行启动类Application的时候,执行的指令太长了,所以运行失败。3.勾选 Shorten command line。1.打开Edit Configuration。4.选择classpath file。2.点击Modify options。

2024-09-25 17:08:50 2376 3

原创 Circular dependency between the following tasks(gradle循环依赖的问题)

目前公司项目主要使用gradle而不是maven,所以对gradle的使用不是很清楚,遇到这个问题的时候一直在晚上查资料,但是解决方案基本都是安卓的,后续先前辈请教了一下,才找到解决方案。

2024-09-25 17:02:45 907 3

原创 面经学习(上海鑫玥轩信息)

Hash结构中,使用大key存储课表Id,课表用来关联userId和课程的Id,使用小key存储节Id,value存储观看位置的数据,在每次请求进来后直接修改Hash中的数据,并且每次发送一个延迟消息,使用Redis的死信发送一个延迟15秒消息,并且也是当前的节点去监听该消息,监听到消息后,使用监听到的观看位置和当前在Hash结构中的观看位置进行比较,如果发现二者的相同,说明在这15秒内没有再次进行观看了,这个时候就去修改数据库。反之,如果不相同的话,说明此时用户还在进行观看,我们就直接丢掉消息。

2024-09-22 22:31:04 514

原创 CQRS模型解析

CQRS中文意思为命令于查询职责分离,我们可以将其了解成读写分离的思想。分为两个部分 业务侧和数据侧,业务侧主要执行的就是数据的写操作,而数据侧主要执行的就是数据的读操作。当然两侧的数据库可以是不同的。目前最为常用的CQRS思想方式为事件驱动。CQRS模型也是未来微服务形态的一个趋势。

2024-09-22 22:23:56 604

原创 gradle入门

在项目中的使用还是和maven非常相似的,我们需要修改依赖的版本号或者修改插件都需要到build.gradle文本中修改。(例如:group='xxx.xxx.xxx',version='0.0.1')明显我们会发现gradle的配置明显少很多,gradle将依赖的引入格式为 groupId:artifactId:version。(需要注意的时候,因为Gradle和idea存在兼容问题,所以最好使用6.8版本以上的Gradle)2.plugin的配置和dependencies还是比较相似的。

2024-09-17 22:05:47 571

原创 面经学习(hbkj实习)

这次面试算是对我基础知识空缺的排查,有很多小知识点是我没有去复习到的,也是一次比较愉快的面试。

2024-09-05 15:30:59 927

原创 面经学习(越亮传奇实习)

的实习项目主要就是做C端的在线教育项目,并且呢,它采用的基于alibaba那套落地的微服务方案。可能也是因为我是实现生的源固,我没有负责黄金链路,从用户登录到用户下单再到用户观看视频的整个流程,我主要负责的就是负责辅助模块的开发。那我给您介绍一下我记得比较清楚的难点吧。

2024-07-19 15:51:59 778

原创 面经学习(厦门安全狗实习)

我的实习项目主要就是做C端的在线教育项目,并且呢,它采用的基于alibaba那套落地的微服务方案。可能也是因为我是实现生的源固,我没有负责黄金链路,从用户登录到用户下单再到用户观看视频的整个流程,我主要负责的就是负责辅助模块的开发。那我给您介绍一下我记得比较清楚的难点吧。

2024-07-19 14:42:27 1357 1

原创 面经学习(杭州实在智能实习)

当发现B中需要依赖A,此时将使用A的ObjectFactory生成A的代理对象,并将A的代理对象存放到二级缓存中,将A注入到B中,将完整的B存放到一级缓存中,此时回溯,将完整的B注入到A中,最终解决三级缓存的问题。Spring的实现方式主要就是使用Aop的来实现的,使用环绕通知,在执行方法的时候,开启事务,并对执行的方法使用Try/catch,如果捕获异常的话就进行回滚,如果执行完方法后就进行提交。解决这个问题的主要方案就是:增加我们的消费者个数,加快消费者的消费速度,对我们消息队列进行扩容。

2024-07-18 23:35:55 1013

原创 Java实习手册(小白也看得懂)

距离俺发布的学习路线已经六个月了,那我给小伙伴的学习周期是四五个月左右,我相信大多的小伙伴已经学习的差不多了。正好赶上暑期实习的阶段,在暑期找到实习就成为暑期的头等大事。实习经验在校招的起到决定性的作用,所以我们需要认真准备。

2024-07-05 22:46:10 3349 10

原创 在线教育实习经验总结

主要就是服务于考研学生培训的微服务C端项目,主要分前台和后台,其中的黄金链路就是从用户登录到购买课程再到课程观看的流程。那在这个过程中还存在一些辅助模块来提高用户的使用体验,包括问答,点赞,热门榜,积分及优惠劵模块,我只要就是负责对辅助模块的开发。

2024-05-16 18:25:59 1373 1

原创 物流项目实习话术(家政,二手回收项目通用)

我的实习项目呢,他是基于微服务框架体系的物流项目中,主要负责人,货,车三者之间的调度关系。主要的黄金链路就是用户下单 -> 快递员揽收->通过一系列的调度完成商品运单的运输->再到快递员派送商品->用户签收的整个流程。主要的模块主要就是调度模块,通过调度模块来异步的调度其他模块,包括运单模块,订单模块,路线规划模块等等。这个模块是物流微服务中最重要的就是调度微服务。其中主要就是包含订单转运单,运单合并,计算运力,司机出入库,快递员派件等流程。那我就按执行流程给您介绍一下调度微服务模块,您看行吗?订单转运单。

2024-05-01 17:39:19 1389

原创 面经学习(上海某小厂)

难度中等,拦截器和过滤器的问题之前没有遇到过,海还有免登录过滤路径问题忘记了,算是学到了。

2024-04-21 19:17:49 973

原创 面经学习(宁波某小厂)

很简单的面试题,纯纯的八股文,项目没有问。就是异常有哪些分类这个知识点忘记了。

2024-04-20 23:31:47 915

原创 面经学习(上海旭千实习)

难度中等,Java的基础部分有点忘了,还有那个token的实现流程也有点给忘了,项目问的比较少,还是要注重Java基础部分的复习。

2024-04-19 23:11:10 1172 1

原创 面经学习(众智宏图实习)

难度还是有的,中等难度吧,可能是因为项目使用的是物流项目,该项目本来就比较庞大难度比较高,流的八股文我真的是一点不会,还需要加强,reidis的多路io复用模型没有深问,要是问了就寄了,这个模型的底层太就没有复习了,这次面试题差不多就是 50%项目+50%八股文。

2024-04-13 20:03:30 1047

原创 面经学习(湖北航信实习)

比较简单的面试题,项目基本不问,全是八股文,mybatis中#{}和${}之前没有遇到过,算是长知识了。

2024-04-12 21:56:57 1070 1

原创 面经学习(湖北地信科技实习)

很简单的面试题,八股文问得都比较浅,这次项目问得比较多,在mysql的索引失效中,数据分布影响导致的索引失效这一点比较深,能够讲出来的话,还是比较加分的。

2024-04-11 23:17:34 1140

原创 面经学习(北京商越网络实习)

比较简单的面试题,不知道 nacos和gateway这块有没有深问,如果深问的话,那难度就升级了。一直对io的八股文不感冒,io这块的知识还得加强,该面经最后一问我是没有如何思路的,算是长知识了欸。

2024-04-11 01:14:07 1190 8

原创 在线影院项目话术(0.7w精选)

这个电影院项目不同于常见的基于会员限制用户观看范围的在线影院项目,主要就是按需购买片源来进行观看,用户就不会因高额的会员费而劝退。项目的主要实现就是:微服务的五大主键,数据库使用mysql,redis,中间件使用rabbitmq,xxl-job,工具使用skywalk和jenkins。项目的主要功能就是 片源的观看及购买及一些辅助用户的功能包括:签到积分,热门电源排行,优惠劵模块。简单的来说,用户登录并按规则下单->用户观看片源的整个流程。

2024-03-25 16:29:34 933

原创 在线教育项目话术(1W字精选)

我们考虑到此模块可能会存在高并发的场景,所以在原先涉及大量的DB操作旧方案上通过redis的数据结构和定时任务来优化。(面试官感兴趣就介绍优化方案)

2024-03-20 15:32:52 1198

原创 Redis的BitMap的使用

Redis的Bitmap不是一个独立的数据结构类型,而是基于字符串(String)类型实现的一种功能 ,存储的是二进制的文件,布隆过滤器就是基于BitMap实现的。

2024-03-06 16:53:12 552

原创 DelayQueue使用手册

DelayQueue是Java中的一个并发容器,它实现了Delayed接口,用于存储具有延迟时间的元素。DelayQueue内部使用PriorityQueue来存储元素,并根据元素的延迟时间进行排序。延迟时间指的是元素需要在指定的延迟时间之后才能被取出。目前主流的延迟对应的方案为:使用mq的延迟队列。而DalayQueue是java自带的延迟队列,我们可以根据需求去选择。使用创建一个队列元素去实现 Delayed 接口。@Data//携带的数据//延迟时间//元素在队列中的剩余时间。

2024-02-29 16:17:00 347

原创 Leetcode 热门百题斩(第三天)

针对leetcode的热门一百题,解决大多数实习生面试的基本算法题。通过我自己的思路和多种方法,供大家参考。

2024-02-01 16:24:32 538 1

原创 Vue3快速使用手册

在我们需要保证响应式的数据赋值上使用ref函数,并且操作其中的vlaue属性,主要就是对value进行操作。

2024-01-24 23:52:20 1643

原创 mysql高级使用教程

页分裂:主键底层是存到数据页上,一遍主键是自增的,所以会进行顺序存储。但是当数据不按顺序的时候会,数据在找到对应的位置会会将后百分之五十的数据存储到新的页上,如何将新的看数据存储到对应的位置上,最终在调整页的位置。页合并:但主键进行删除的时候,会先将要删除的数据进行标记,当达到阈值(MERGE_THRESHOLD)时就会进行删除,并判断前后侧的页是否能合并,能就进行合并,最终出现页合并。因为二级索引中的数据就会主键,当二级索引多的情况就会占用大量的空间,并在数据的读取的时候需要大量的io操作。

2024-01-15 20:35:40 1517

原创 SpringSecurity深度学习

spring Security是什么?是一个强大且高度可定制的身份验证和访问控制框架,用于保护基于Spring的应用程序。它是Spring项目的一部分,旨在为企业级系统提供全面的安全性解决方案。一个简单的授权和校验流程检验流程总流程1.自定义授权异常处理器和校验异常处理器。校验异常处理器//校验失败异常处理器@Component@Override//创建统一的返回对象,设置到response中。

2024-01-06 16:45:39 699

原创 前后端项目统一返回类型(配置即用)

此模板并非定死,可以根据前端的规则进行相应属性名的修改,及根据业务的实际情况添加或修改其中的属性。

2024-01-03 23:33:40 614

原创 jwt工具类(配置即用)

主要使用就是生成和解析的方法,我们可以在此方法上实现方法增强的相关操作。

2024-01-03 23:27:42 667

原创 网盘项目话术(0.5w字精选)

该项目主要就是对文件的操作,file表,file_share表。file表主要字段:id,用户id,父级目录id,文件的地址,文件的封面图片地址,创建和修改时间。file_share表主要字段:id,文件id,用户id,有效类型,创建和失效时间(用于定时任务)。基于RDAB的五张表:用户信息表,角色表,权限表,用户角色关联表(多对多关系),角色权限关联表(多对多关系)。基础设置表:id,邮箱标题,邮箱内容前缀,默认初始化空间大小。单点登录->双token三认证(迭代方案)

2023-12-28 21:59:28 1588

原创 物流项目话术(1.5w字精选)

用户在【用户端】下单后,生成订单系统会根据订单生成【取件任务】,快递员上门取件后成功后生成【运单】用户对订单进行支付,会产生【交易单】快件开始运输,会经历起始营业部、分拣中心、转运中心、分拣中心、终点营业部之间的转运运输,在此期间会有多个【运输任务】到达终点网点后,系统会生成【派件任务】,快递员进行派件作业最后,用户将进行签收或拒收操作

2023-12-19 22:42:57 2407

原创 线程池基础参数和执行流程

3.如果阻塞队列满了,就判断线程的总数是否大于核心线程的总数,如果大于,创建救急线程去执行任务。(当救急线程和核心线程处于空闲的时候就会去执行堵塞队列中的方法)DiscardOldestPolicy:丢掉在堵塞队列中存储最久的任务,将新的任务存储到队列中。1.在新的任务进来后,先判断核心线程是否已满,如果没满,直接创建个核心线程去执行任务。2.如果核心线程满了,就判断阻塞队列是否已满,如果没有满,直接存储到阻塞队列中。5.BlockingQueue:阻塞线程,存储哪些没有被核心线程执行的任务。

2023-12-07 11:29:07 647

链路追踪的Skywalking的探针

skywalking-agent

2023-10-26

ffmpeg-2023-04-17

ffmpeg本体

2023-07-31

空空如也

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

TA关注的人

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