自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 扩展 KMP(Z 函数)

F04 扩展 KMP(Z 函数)

2024-09-14 17:59:07 104

原创 最长重复子串-后缀数组解法学习

. - 力扣(LeetCode)F10 后缀数组(SA)_哔哩哔哩_bilibili

2024-09-08 17:29:46 104

原创 mysql字段varchar大小设置不合理踩坑线上问题

1、字段大小设置需要跟业务/产品讨论清楚,了解线上业务真实的字段值大小情况,避免设置太小出现线上问题。

2024-09-03 11:00:49 189

原创 业务异常接口返回非200状态码还是200+code+msg

从接口成功率监控和异常日志告警的角度:200+code+msg。

2024-09-03 10:03:13 332

原创 支付前端防重踩的坑

1、前端防重的思路需要前后端一起review一下避免出现前端做了防重但是防重不够彻底。

2024-09-02 15:43:37 223

原创 mysql关于redo log和binlog作用的一些问题

InonoDB无法恢复数据,因为mysql将数据写入脏页,通过checkpoint机制进行刷盘,因此如果没有redolog,mysql的server层不知道事物是否已经刷盘,如果已经刷盘再次重做可能会带来数据一致性问题,如果没有刷盘,没有重做则会丢失数据,也许你会说那记录一下哪个binlog已经刷盘即可,这个记录文件就是另一种形式的redolog。redo log:1、InonoDB产生,非由mysql server层产生;binlog:1、主要用于主从复制;2、由mysql server层产生。

2024-06-11 17:28:54 182

原创 mysql间隙锁的作用

事务2先提交,事务1后提交,此时主库有id=4,age=18的数据,但是从库拿到的binlog是先插入age=18 的数据,然后在执行delete where age=18的数据,也就会吧id=4,age=18 的数据一起删除掉,导致主从数据不一致。在并发的情况下,唯一索引插入不存在的数据,唯一性的控制也要通过间隙锁来控制,因为这个时候行锁并不存在。事务1:删除where age=18的数据,对应删除的记录主键id=1,2,3。事务2:插入age=18的数据,对应id=4,

2024-06-04 11:39:53 121

原创 加权轮询负载均衡算法实现

2024-06-01 12:14:44 135

原创 面试题:数组值为1-n,各出现一次,先加入x(x也是1-n的范围),找出x

4,2,2,3,1]->[4,2,2,3,-1]->[4,-2,2,3,-1]->[4,-2,2,3,-1],遍历到第二个2的时候,2-1对应的索引位置的元素值已经是负数,说明2已经出现了重复。定义两个指针,一个每次向前两步,一个每次向前一步,如果数组里有重复的数字,这两个指针一定会相遇,相遇后,快的指针重置到数组起点,两个指针在同时按步数为1的方法前进,再次相遇的数字即为重复数字。2、判断元素值-1对应的索引位置值是否为负数,如果是负数则找到了重复元素X。以:[4,2,2,3,1]为例。

2024-06-01 12:12:40 146

原创 面试题:链表有环求入环第一个点

4、让长的链表先走多出来的节点,最后两个链表的指针同时走,每次走一个节点,每走一步判断节点是否相等,相等则说明是入环的第一个点。通过這个表达式我们知道,第二相遇时,慢指针走了X步,快指针会在圆环上绕性n-1圈,在加上z个节点,最后在入环第一个点再次相遇。2、B点相遇后,将B的next指针设置为null,整个链表转化为x-A-B的链表和B-C-A-B两个相交的链表。2*(x+y)=x+y+n*(y+z),这里n>=1,y+z代表圆环的节点数。1、慢指针每次走一个节点,快指针每次走两个节点,第一次在B点相遇。

2024-06-01 11:39:54 132

原创 高性能-forkjoinPool的一些疑问

正常理解:执行任务A的线程,在等待B任务的结果的时候,无法执行别的任务,同理执行任务B的线程需要等待C任务完成,也无法执行别的任务,这样一直依赖下去,会消掉完所有工作线程从而导致部分依赖任务没有线程执行,整个大任务被阻塞。這个问题的关键在于join方法的实现:join方法在等待的时候会去看自己依赖的任务是否完成,如果没有完成则从别的任务队列中窃取任务完成,而不是死死的等待任务依赖任务完成。2、如果config是非2的n次冥,就先config的所有二进制位通过|运算变成1,然后在加1得到一个2的n次冥的数。

2024-06-01 11:14:15 169

原创 JVM面试题

1、CMS和G1垃圾回收器选型2、本地缓存服务有几百兆的大对象适合那种垃圾回收器?3、本地缓存服务有几百兆的大对象一个region放不下对G1垃圾回收有啥影响?

2024-05-28 11:01:13 115

原创 TCP和UDP相关面试题

1、序列号,确认应答,超时重传2、校验和3、拥塞控制和流量控制4、三次握手和四次挥手。

2024-05-27 20:17:19 139

原创 Http和https面试题

服务端将自己的证书信息和证书校验和信息发送给客户端,校验和信息在服务端申请域名的时候,由CA机构校验生成,同时通过自己的私钥进行加密,另外客户端在生产的时候就有CA机构的公钥,客户端拿到服务端给的信息后,解密出校验和,然后通过证书上的算法生成校验和,跟服务端给的校验和做比较,一致则认为服务端有效。

2024-05-27 20:07:25 92

原创 redis相关面试题

高级数据结构:bitmap,HyperLogLog、geohash、布隆过滤器。

2024-05-27 12:42:44 174

原创 Java线程池使用的一些问题

worker线程是懒加载的,当用户请求来的时候才判断是否需要创建worker线程,但是创建线程是一个耗时的过程,如果遇到突然流量,需要同时创建所有的核心线程,甚至是最大线程,这会导致CPU飙升,接口影响变慢,用户请求可能超时,可以在服务启动的时候调用如下方法启动所有的核心线程。主异步任务产生子异步任务,主异步任务提交子任务到线程池中,然后等子任务的结果,当主异步任务较多的时候,会占用所有的worker线程,然后子任务没有worker线程去执行,最后子任务越来越多,当队列满的时候执行拒绝策略。

2024-05-24 11:45:07 653

原创 mysql核心面试题

可以配置的参数&参数对应的数据安全级别1、锁是加在索引上的2、非聚簇索引提升查询性能3、只有一个聚簇索引可以减少存储,另外在维护数据一致性方面也有好处。

2024-05-24 10:52:10 430

原创 下单用事务消息还是普通消息

由于这些数据对实时性要求比较高,只依赖事务消息或者普通消息都难以确保实时性,因此还需要同步调用。1、缺点:一旦MQ宕机导致prepare消息无法发出,责会阻塞下单流程,给公司带来资损。采用普通消息+消息发送失败写入DB+定时任务补偿的方式保证消息的可靠投递。避免因为MQ宕机后阻塞下单的问题。1、优点:保证消息的可靠投递。

2024-05-21 18:51:12 162

原创 接口设计需要考虑哪些方面

15、调用第三方接口需要注意超时设置、是否异步、是否走本地缓存、重试机制、完全降级、批量&并行、QPS评估、延迟评估(特别是主从延迟)、状态码解析、响应和参数记录、异常处理。14、那些是核心流程那些是非核心流程,非核心流程是否可以异步,同时还不影响主流程。18、接口职责:底层接口考虑原子能力,外部controller考虑聚合能力。6、内部使用&还是外部使用,最好分开,因为内部调用可能不需要鉴权。19、接口各个方面监控到位:QPS、性能、错误率等。2、降级:非核心接口,可在适当时候降级。

2024-05-21 18:42:01 126

原创 分布式事务上的总结和思考

这个种情况可以通过mybatis plus提供的@DSTransactional解决。

2024-05-13 21:06:14 609

原创 面试题:高可用服务设计

面试题:高可用服务设计

2024-05-13 19:51:54 213

空空如也

空空如也

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

TA关注的人

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