- 博客(77)
- 收藏
- 关注
原创 性能微基准测试JMH
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎交流,一起加油。
2024-10-01 22:25:46
156
原创 完整的优化流程需要做什么工作
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎交流,一起加油。
2024-07-16 20:19:39
151
原创 重要的单元测试
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎交流,一起加油。
2024-07-15 19:54:48
812
原创 怎么理解VPN
VPN 协议 是一套规则,决定数据如何通过虚拟专用网络发送,从本地设备的 VPN 客户端到 VPN 提供商的网络接入服务器,再到目标互联网地址,反之亦然。在整个过程中,所有数据都通过称为“ VPN 隧道”的隧道进行传输。慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎交流,一起加油。
2024-07-12 21:47:59
1017
原创 了解protoStuff
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎交流:A13781678921,一起加油。
2024-06-16 16:10:47
932
原创 如何手动实现批量添加和解除限时锁
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎交流,一起加油。
2024-06-12 22:29:31
904
原创 如何手动实现multiSetIfAbsent、multiExpire
Pipeline模式类似流水线的工作模式:客户端发送一个命令后无需等待执行结果,会继续发送其他命令;在全部请求发送完毕后,客户端关闭请求,开始接收响应,收到执行结果后再与之前发送的命令按顺序进行一一匹配。在Pipeline模式的具体实现中,大部分Redis客户端采用批处理的方式,即一次发送多个命令,在接收完所有命令执行结果后再返回给上层业务。将多个命令一次性发送给服务器,避免了频繁地进行网络往返,从而减少了延迟并提升了效率。
2024-06-12 22:15:21
906
原创 Java应届第一年规划
2月底学校开学,辞职回学校做毕设、春招。毕设总耗时大概10天左右,大多时间都是在解决论文格式或者不规范的问题。好像确实是改不完的,每个老师都有一套自己的格式标准,所以每次都是老师快要检查的时候,突击修改了一下…大多时间都是用在了找工作,三月份的每天都是官网投简历、做测评、笔试、刷面经,但三月份的面试也确实很少(主投官网,boss投的很少)。
2024-06-10 17:51:31
810
2
原创 Redis的过期策略能介绍一下?要不你再手写一个LRU?
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎交流:A13781678921,一起加油。
2024-06-02 23:41:23
1106
原创 如何参与github开源项目并提交PR
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎添加交流:A13781678921,一起加油。
2024-05-25 10:24:28
717
原创 JVM实践及排查总结
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎添加小符微信:A13781678921,一起加油。
2024-05-03 14:00:46
595
原创 缓存和线程池的实际场景案例
场景一:es数据同步防止一次读取DB导致oom,多次读取同步数据,利用countDownLatch+线程池实现场景二:数据信息汇总用户需要在三个微服务中查询订单、商品、物流信息进行汇总,利用线程池+future并行执行获取数据场景三:异步调用@Async注解可以异步线程执行方法,提高用户响应时间和性能效率避免@Async底层的坑,注意指定线程池
2024-05-03 10:17:09
959
原创 双因素登录实现思路
在之前实习的时候,客户要求实现双因素登录,当时的具体思路在这里回忆一下。项目的整个体系都是基于SpringSecurity框架进行实现的认证,所以思路也可能有一些局限性双因素身份验证是指用户提供除用户名和密码之外的第二种形式的身份验证来增加额外的安全层。
2024-04-14 15:15:36
394
1
原创 从0到1的毕设 学习社区
简介:一个社区学习圈子,帮助用户学习,进行平台统一化。用户可以在平台,完善自身知识,刷自身薄弱点面试题,配合练习,来提升自己的能力。主要是自己之前的单体项目的技术的整合和实现。大家在学习的过程中,是需要进行题目的学习和练习的,一般就是根据pdf或者在线文档进行学习,质量参差不齐,所以想做一个线上化的题目学习社区,进行资源的整合,同时将自己之前学过的技术再次进行练习和整合实现。以 C 端为主和社区的形式进行展现,主要实现的功能有刷题区,练题区,交流区,模拟面试区、博客区等等。
2024-04-14 14:07:01
1225
2
原创 分布式锁的实现
如果对性能要求比较高的话,建议使用 Redis 实现分布式锁(优先选择 Redisson 提供的现成的分布式锁,而不是自己实现)。如果对可靠性要求比较高的话,建议使用 ZooKeeper 实现分布式锁(推荐基于 Curator 框架实现)。不过,现在很多项目都不会用到 ZooKeeper,如果单纯是因为分布式锁而引入 ZooKeeper 的话,那是不太可取的,不建议这样做,为了一个小小的功能增加了系统的复杂度从性能角度(从高到低)缓存 > Zookeeper >= 数据库从可靠性角度(从高到低)
2024-02-20 14:39:36
634
原创 RabbitMQ之 Direct 交换机
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎添加小符微信:A13781678921,一起加油。
2024-02-18 21:00:00
846
原创 RabbitMQ之 Fanout 交换机
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎添加小符微信:A13781678921,一起加油。
2024-02-18 21:00:00
1121
原创 RabbitMQ之 Topic 交换机
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎添加小符微信:A13781678921,一起加油。
2024-02-18 21:00:00
997
原创 消息队列MQ 介绍
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎添加小符微信:A13781678921,一起加油。
2024-02-08 17:52:09
346
原创 MQ消息丢失和积压问题
MQ可以削峰和消息持久化,等待其它系统准备好后进行消费。那么消息积压过大是怎么处理的呢、消息队列的消息会过期失效吗消息队列中的消息是会过期失效的。假设使⽤的是 RabbitMQ,RabbtiMQ 是可以设置过期时间的,也就是 TTL。如果消息在队列中积压超过⼀定的时间就会被 RabbitMQ 给清理掉,这个数据就没了。那这就是第⼆个坑了。如果数据会⼤量积压在 mq ⾥,⼤量的数据可能会丢失。如果丢失了大量的消息,只能等到高峰期过去之后,写一个临时程序手动将丢失的数据一点一点排查出来,重新发送给mq
2024-02-07 17:53:42
1189
原创 消息队列MQ
有一个方案是利用mq监听是否有变更数据库的操作然后同步es,继续往下思考,我们都是在什么场景下要使用mq呢,mq又是如何选型呢?举例:如果支付系统给用户系统、交易系统、通知系统发送一条支付完成的消息,需要支付系统时刻考虑用户系统、交易系统、通知系统是否正常运行,如果挂掉,消息要不要重发等等。使用消息队列MQ【mq只是其中一种方案,MQ 支持多个消费者从同一个队列中接收消息】,支付系统只需要将消息发送到MQ中,如果某个系统需要数据,直接从 MQ ⾥消费即可;
2024-02-07 01:40:34
882
原创 保证数据库和ES的数据一致性
背景:在写毕设的全文检索功能时,要把题目的数据同步到es,考虑到一个问题,如何保证数据库和es的一致性呢?考虑方案如下:1. 双写:先操作数据库,再操作es2. mq异步: 先操作数据库,然后异步通知去操作es3. 定时同步:定时扫描数据库的表,批量操作es4. 监听binlog同步:通过监听数据库变更时产生的binlog更新es
2024-01-27 00:15:00
744
原创 深入理解SSLcontext和SSL/TLS 协议通信原理
慢慢的来,别着急!学会有质量的走过每一步我是代码不会敲的小符,希望认识更多有经验的大佬,也在努力摸索出自己的道路欢迎添加小符微信:A13781678921,一起加油。
2024-01-26 09:39:29
2842
原创 TCP和SSL/TLS 协议通信原理
访问网站时,以HTTPS开头的表示你和服务器之间传输的数据经过了加密,这里所使用的加密协议就是SSL(Secure Sockets Layer,后来又推出了它的后续版本,改名叫TLS)。把HTTP协议经过一层SSL协议进行加密包装,就变成了HTTPS。当然,SSL/TLS还用在很多协议中,例如VPN、加密的电子邮件协议等。
2024-01-23 19:26:49
2170
原创 分区、分库分表
背景中午去吃饭的路上,我提出了关于数据库分库分表和分区区别的问题。问了大哥们,大哥们解释的有点没听懂!!只知道这两个是不搭边的东西,我理解的也有点混乱,这里补一下基础吧!!!分区表把一张表的数据分成N多个区块。分区表是一个独立的逻辑表,底层是由多个子表组成。当查询条件的数据分布在某一个分区时,查询引擎只会区某一个分区查询,并不遍历整个表。当删除某一个分区的数据时,只需要删除对应的分区。分区是mysql内部实现的,分库分表需要代码实现。分区和分库分表并不冲突,可以结合使
2024-01-17 18:42:25
972
原创 原子累加器 LongAdder
小故事:中午吃饭的时候,大哥们聊到了LongAdder 这个类的实现问题,当时我也有点忘记了具体源码实现,只记得是多线程下提高cpu的利用率,减少自旋时间。利用了分片锁,进行累加的操作!但是大哥们聊到了内存层面!我又回来复习了一下源码!CAS (Compare and Swap)compareAndSet:内存位置 V、旧的预期值 A 和新的值 Bcas和volatile可以实现无锁并发,适用于线程数少,多核cpu的场景
2024-01-16 18:21:28
962
原创 线上bug-接口速度慢
在周五的下午,小符已经打开了bilibili,正打算继续摸鱼...新哥问我是不是没事干呀....于是指给我了一个线上bug,让我修一下bug是调用接口太慢了,长达19s的耗时,这不得不让客户怀疑 ”诶,怎么不动了,我卡死了吗!“ 用户体验很不好。
2023-11-21 01:27:28
676
原创 Spring源码—初识IOC
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml"); 这句代码发生了什么?
2023-11-15 14:58:43
305
原创 Redis分布式锁案例
所有服务抢占同一个公共锁,抢到后,执行业务,执行完毕释放业务。去中心化分布式系统越来越普及,有一种不可避免的场景就是**多个进程互斥的对其资源的使用,为了保证数据不重复**,要求在同一时刻,同一任务只在一个节点上运行,且保证在多进程下的数据安全,分布式锁就十分重要了。通过执行setnx,若成功再执行expire添加过期时间的方式加锁,解锁执行delete命令。
2023-06-17 17:14:18
636
1
原创 Redis实现分布式锁
我们在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失。在单服务器系统我们常用本地锁来避免并发带来的问题,然而,当服务采用集群方式部署时,本地锁无法在多个服务器之间生效,这时候保证数据的一致性就需要分布式锁来实现。
2023-06-17 17:10:27
470
原创 图书管理系统
javaSE、servlet、JDBC、Maven、Mybatis、SpringMVC、SSM(了解)、Springboot、SQL、HTML、CSS、JS、vue2相关语法。图书管理系统是一个前后端分离的项目。
2023-03-25 10:12:00
180
原创 javaee实验,SSM整合开发综合实例
根据给定的数据库,完成一个SSM框架的项目搭建,要求最终实现在一个页面中输入学校名称和学校人数,点击按钮,将数据插入到数据库中,要求在过程中使用SSM 框架完成。(1) 完成SSM框架的整合搭建;(1)掌握SSM项目整合的原则;(2)掌握SSM框架的整合步骤;(2) 完成SSM项目的配置;实体类中用Integer而不是int的原因是:Integer是int包装后的对象,默认值是null,而int默认值是0。如果用int,在未赋值的情况下传入数据库,数据库接收到的是0而不是null;
2022-11-25 01:30:00
1825
1
原创 javaee实验,Spring MVC拦截器的设计与实现
编写一个拦截器,在进入处理器之前开始记录时间,即在拦截器的preHandle 记录开始时间,在结束请求之后记录结束时间,即在拦截器的afterCompletion记录结束时间,并用结束时间减去开始时间,得到这次请求的处理时间。(1)掌握SpringMVC拦截器的基本原理;(3) 完成拦截器计时方法的编写;(3)掌握拦截器具体方法的实现;(2) 完成拦截器代码的编写;(4) 完成jsp页面的编码;(1) 完成控制器的创建;(2)掌握控制器的实现;
2022-10-30 14:45:59
1004
原创 javaee实验,SpringMVC 参数绑定
自定义一个person对象,通过在浏览器中输入编号、姓名、电话、地址的信息,实现在控制器中绑定,并完成在控制台中打印输入结果。(1)掌握SpringMVC的基本架构;(1) 完成POJO类的创建;(2) 完成配置文件的编写;(3) 完成控制器类的编写;(2)掌握控制器类的编写;(3)掌握参数绑定的实现;有很多种做法,写法不唯一。(4) 完成参数的绑定;
2022-10-27 01:21:56
711
mysql-shell:mysql-shell-8.4.0-windows-x86-64bit.zip
2024-05-26
免费Redis图形化界面(RESP):resp-2022.5.zip
2024-05-26
windows版本:Redis可视化管理redisInsight:RedisInsight-win-installer.exe
2024-05-26
windows版本 mongodb shell:mongosh-2.2.6-win32-x64.zip
2024-05-26
windows版本 mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe
2024-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人