- 博客(104)
- 收藏
- 关注
原创 如何使用 Git Revert 撤销合并提交
在使用 Git 进行版本控制时,合并分支是一个常见的操作。然而,有时候我们可能需要撤销之前的合并操作。本文将详细介绍如何使用 git revert 撤销合并提交,即使在合并提交之后还有其他提交。
2024-10-21 11:08:42
1371
1
原创 后端存储流程结构的思考
流程图中,流程节点是多对多的关系,一个当前节点可能连接到多个下一节点,多个当前节点可能连接到一个下一节点。这种关系用算法中的图来描述非常合适,图是比树更复杂的数据结构。
2024-07-22 17:12:59
359
原创 关于各环境配置表数据同步的一种想法
如果各环境表配置同步能遵守规范操作,保持从低级别环境向高级别环境过渡。如果各环境表配置同步不能遵守规范操作,那么id冲突无可避免,特别对于树状结构,其parent_id无法自动生成。同样提供数据比对接口,但是实现麻烦些,需要逐层划归数据,然后逐级比对。其数据对比的环境一般是当前环境和低级环境,低级环境通过jdbc的方式连接并获取数据。诸如菜单、按钮、权限等同步到各个环境往往通过手动获取语句的方式,如果是树状结构配置,很可能存在主键冲突。虽然可以借助数据同步工具,但是依然比较麻烦,需要勾选数据等。
2024-06-29 20:47:23
254
原创 操作日志、审计日志解决方案和思路
现在大部分公司一般使用SpringCloud这条技术栈,操作日志通过网关Gateway提供的Globalfilter统一拦截请求解析请求是比较好的选选择。优点:相对于传统的过滤器、拦截器同步阻塞方案,SpringCloud Gateway使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架,提高了性能。缺点:请求的解析与传统过滤器、拦截器有所不同,特别是获取请求参数与响应参数这块。
2024-06-05 22:12:52
720
原创 记一次RabbitMQ未配置Listener导致的报错
推测原因是未设置acknowledge-mode: manual手动确认消息,而在代码中手动确认了消息。增加配置后问题得到解决。
2024-05-30 19:41:42
381
原创 解决mybatis拦截器注入依赖后为null问题
调试时发现在mybatis拦截器定义的注解@PostConstruct方法中RedisUtils依赖已经注入,但是在拦截器的Intercept方法中redisUtils为null。在配置类中将MybatisInterceptor改成@Bean注入后,Intercept执行时依赖问题解决。需求是在mybatis拦截器中注入RedisUtils用来缓存一些信息。
2024-05-27 22:53:02
485
原创 Mysql8.0.30一次表锁问题的解决
给material_config_field_data表的字段建立全文索引的时,发现该表卡死,然后无法对该表进行任何操作。
2024-05-09 18:30:07
321
原创 关于使用后端实现动态表单功能的心得
需要前端可靠支撑,如前端生成ID或者直接将名称作为表单、字段、选项的唯一识别。:存储表单字段信息,比如字段类型、选项类型、输入框类型、筛选类型(展开类型)、字段排序、是否必填、所属表单ID等。优点:相对Mysql细化结构存储,不用在后端处理大量增、删、改的逻辑。如输入框类型的输入值、选项标签、表单ID、选项ID。:存储字段为选项类型的选项,如选项名、所属字段ID、所属表单ID等。:勾选了哪些选项,需存表单ID、字段ID、选项ID。:使用了哪个表单,并存储表单数据,需存表单ID。
2024-04-21 21:03:42
988
原创 Java离线视频提取音频+音频提取文案
至于javacv依赖,网上有很多缩减方案,注释部分是可行的缩减方案,至于视频提取视频这里无需安装ffmpeg,只需引入依赖。而vosk需要下载模型方可使用,并且下载比较慢,可先用小模型跑通。
2024-04-21 19:56:25
1668
6
原创 动态ip白名单频繁更改问题解决方案
3. 使用VPN:可以使用VPN来解决动态IP地址的变化问题,VPN可以将动态IP地址转换成一个固定的IP地址,从而使得公网IP地址一直不变。个人感觉是添加域名白名单,访问者的动态ip将被映射成固定域名,动态ip访问变成固定域名访问。域名白名单的作用应该就是处理这样的场景。2. 使用动态DNS:可以使用动态DNS服务,它可以将动态IP地址映射到一个固定的域名,从而使得动态IP地址处理为域名一直不变。1. 使用静态IP地址:可以通过向ISP申请静态IP地址来解决动态IP地址的变化问题,但是这种方法会比较贵。
2024-03-27 00:28:44
1149
原创 leetcode猜数字大小
说实话我也看不懂我的算法,中位法吧,但是0ms通过了。来获取猜测结果,返回值一共有 3 种可能的情况(你可以通过调用一个预先定义好的接口。
2024-03-17 22:02:28
495
原创 leetcode排列序列
找规律,不要急着一簇而就,先用代码解决出首位是几,在数组中下标是几。然后就会发现每次的余数(下一轮首位确定后有多少组合)和乘数(当前首位确定后有多少种组合)是关键,慢慢解决思路就出来了。
2024-03-15 01:54:58
453
原创 leetcode最后一个单词(双指针)
双指针从后向前遍历,i不断递减,j如果是空字符就递减,循环满足一定的逻辑运算后就跳出。代码是经过改进的,减少行数。
2024-03-12 23:43:44
410
原创 Nacos宕机思考
Nacos宕机后,Client端已经缓存在本地服务实例依然可以使用,除非服务不可用或者真实的服实例发生变化。假如已完成流程:服务A、B注册向Nacos注册服务 -> Nacos存储服务实例 -> B服务调用A服务。所以结论是Nacos如果宕机了,不论是临时实例和持久化实例。个人思考,不对之处还请更正。
2024-03-12 17:55:06
929
原创 leetcode找出字符串中第一个匹配项的下标
双指针,在i不断递增的情况下,如果首字符匹配则i停止,接着从子串最后一个字符开始向比较,直至到i,否则i继续递增。
2024-03-10 23:25:34
454
原创 技术的思考
如果不是纯粹感兴趣,那么要确定研究的价值、深度。很多人知道很多知识,但是不知道其中的价值或者更深层次的价值,当然研究价值也是一种价值。知识输出价值,劳动有益健康。对技术的剖析,可以从里到外和从外到里,取决于你的接触面或者说认知。我想写一本书应该也无非是这两种构思。重复思考,重复学习,重复实践,没有记住即使记住细节也会遗忘。技术的本质是层层封装、组合、构思。
2024-03-06 00:41:22
396
原创 限流、流量削峰思考
学MQ的时候,经常会有人拿秒杀这个场景去介绍流量削峰。这很好理解,将请求放到一个中转站去暂存,虽然生产者生产很快,但消费者可以慢慢去中转站获取。关于限流,之前一直以为限流的思想类似MQ,不过是内存中的MQ,今天看了几种限流算法,发现限流和流量削峰有相似也有不同。但是不能用空间换时间差相似的词来形容这两种算法,想想用。与MQ的生产者-消费者-推拉模型相似。基于时间片流量控制,而。
2024-03-05 00:33:08
405
原创 HashMap & Hashtable & ConcurrentHashMap线程安全
HashMap & Hashtable & ConCurrentHashMap
2024-03-03 23:50:40
481
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人