- 博客(70)
- 收藏
- 关注
原创 问题(十九)JavaAgent-ByteBuddy与CGLIB字节码增强冲突问题
其他团队在使用作者的性能分析组件时发生了发布阻塞,经过排查是由于bytebuddy和cglib字节码冲突,这里介绍一下排查过程和原理分析
2024-11-13 09:43:20
928
原创 人工智能(四)-大模型搭建
上一篇讲了人工智能是怎么学习的,这一期开始作者会开始讲实践,首先就是要在本地搭建一个预训练的大模型,后面才可以进一步的对他进行微调、搭载agent、向量数据库,完成自己想要的模型。
2024-10-22 17:38:59
1715
1
原创 idea插件开发(二)经验分享
在开发合并检查插件的时候,作者也遇到了不少问题,主要是自己摸索,没有其他人的经验。不过这种从0到1的技术研究对个人还是有好处的,就像作者之前自己捣鼓了一个微信小程序和到huggingface研究AI一样,虽然很麻烦,但是可以说很少有东西作者自己研究不了的。 言归正传,接下来分享一些作者觉得会绕弯路的经验。
2024-09-05 10:00:34
4465
原创 idea插件开发(一)合并检查
由于代码合并冲突的时候,代码丢失的情况频发,作者研究idea的VFS虚拟文件系统和Git4ide源码,创作idea插件检测代码合并丢失可以区分主动删除与被动丢失,比如本地或者删除一段代码,合并之后不会被认为是丢失
2024-08-28 19:18:48
4435
原创 生产问题(十七)静态变量导致NoClassDefFoundError
最近线上出现了java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class com.**.Util,导致详情查询出现问题。这个问题其实之前也出现过,找了框架的排查没有查到结果,不过之前作者不知道这个事情。这次一看到这种报错,作者就知道一定是静态变量或者static块导
2024-07-26 09:47:17
4594
原创 人工智能(三)AI是怎么学习的
通过之前的人工智能架构分析和Transformer模型的原理介绍,读者应该对人工智能有了一个初步的了解。但是很多读者不是很想知道那么多软件方面的专业知识,通过大家的问题,大家关心的主要是三个方面:ai是怎么学习的,不停的搜网上的信息进行学习,然后人工再问他一些问题,根据答案进行正确错误提示调整吗?在线跟ai的对话会让ai实时学习进步吗?怎么在ai时代下保持自己的竞争力?作者在这里用一些简单的示例来说说自己的理解和摸索
2024-06-12 18:19:16
5499
原创 生产问题(十六)数据丢失-mysql binlog排查
最近作者遇到一个线上问题,是mysql 的数据丢失了,这里记录一下排查过程和binlog的分析。
2024-05-30 13:28:45
968
原创 架构(十七)翻译监控
作者最近做的一个功能是需要监控一个翻译转换,根据国家和语言进行分组,然后定时把监控情况放到ck里面。为什么是分组和定时监控呢?因为调用比较高的系统的qps在单机一万多,70台机器,可怕的高频调用注定他不能实时分析。
2024-05-29 13:07:11
1392
原创 人工智能(二)-Transformer模型
上篇文章以对话模式为例讲了目前人工智能的整体架构,但是大模型依然有很多细节问题,这里作者讲一讲目前的Transformers模型原理。
2024-05-22 20:49:29
8319
1
原创 人工智能(一)架构
人工智能这个词不是很新鲜,早就有开始研究的,各种推荐系统、智能客服都是有一定的智能服务的,但是一直都没有体现出多高的智能性,很多时候更像是‘人工智障’。但是自从chatGpt3被大范围的营销和使用之后,人工智能逐渐体现出来他的智能性和高度的推理分析能力,他的范围也不再局限于软件行业,财务、法律、人事等等各种各样的行业都开始进行学习使用。 作者经过一段时间的研究学习,对于AI也有了自己的一些理解,在这里进行分享,希望读者可以解开心中的疑惑,并且做好未来AI的学习应对。
2024-05-16 12:06:33
5223
原创 问题(十五)性能分析组件类加载问题
最近作者在做性能分析服务的agent,有个功能是在代理启动的时候加载配置中心,拿到具体哪些目录下的类需要增强,这里碰到了类加载失败的问题。
2024-04-30 13:04:37
968
原创 微信小程序(六)定位搜索
作者上一章讲了微信小程序的地图实现微信小程序(五)地图-优快云博客,但是还有一个功能是和地图紧密结合的,那就是位置搜索定位,这里作者讲讲实现和原理,包括城市筛选。
2024-04-12 12:04:08
4540
原创 数据清洗(一)Excel
线上出现问题之后的数据清洗是少不了的,有的可以直接通过接口或者mq补偿,有的写sql更新db就可以,但是在匹配关系比较复杂的时候就需要建立临时表做关联匹配,数据量不大可以直接用excel进行匹配。
2024-03-22 10:04:29
1498
原创 架构(十六)本地方法缓存
作者需要在底层公共包里面加一个方法反射的工具类,看起来很简单的事,问题也不少,这里讲讲过程。在结合同事的思维误区聊聊本地加锁块的问题。
2024-03-06 11:45:20
3749
原创 架构(十五)Java字节码增强
一般如果需要做增强类的架构工具会使用SpringBoot提供的切面,但是这逃不开两个问题:1、使用方需要加注解代码;2、版本更新导致的发布。 所以java还提供了字节码层面的增强方案,对使用的系统是无感的。
2024-02-27 09:46:20
10653
原创 架构(十四)动态Groovy脚本
了解groovy和python的就可以直接到第三章了动态的脚本这样就实现了,其实用python也可以,java也有支持python的执行库,不过用起来就有点曲折了。即使用得是和java无缝集成的Groovy,过程也是有点绕弯的,而且还有一些小坎没写,写出来会降低作者的逼格,毕竟很多时候调试开发遇到的都是一些很小的问题一下子没转过来,事后想想又觉得脑子丢了一会。有兴趣的同学可以在评论区和作者讨论自己项目的疑难杂症!一起交流进步。
2024-02-20 12:10:35
13623
7
原创 架构(十三)动态本地锁
加锁大家都知道,但是目前提供动态锁的基本都是分布式锁,根据订单或者某个收费款项进行加锁。比如这个1订单要收刷卡费用,那就OREDER_1做为key丢到redis进行分布式加锁。这也是当下分布式锁最流行的方式。 但是对于平台项目或者一些并发程度低的场景,分布式锁就没有必要了,本地锁更加方便。但是本地锁只有synchronized、ReentrantLock之类的方式,想动态的加锁只用他们是实现不了的。
2024-02-06 18:52:15
2085
原创 架构(十二)动态Excel
作者最近的平台项目需要生成excel,excel的导入导出是常用的功能,但是作者想做成动态的,不要固定模板,那就看看怎么实现。
2024-02-05 12:01:14
12448
2
原创 架构(十一)动态定时任务
作者的平台项目最近需要实现一个功能,用户可选择这个任务什么时候执行,执行频率是什么? 这其实就是一个定时任务,只不过需要动态的,让用户自由选择。
2024-01-29 13:11:09
14506
原创 生产问题(十四)K8S抢占CPU导致数据库链接池打爆
线上一天出现了两次数据库连接失败的大量报错,一开始以为是数据库的问题,但是想了想如果是数据库的问题,应该会有大量的应用问题具体分析之后,发现其实是容器cpu出现了Throttled,导致大量线程阻塞
2024-01-24 12:18:10
18711
原创 前端(二)VUE功能集锦
作者开发工具平台的时候,用到了vue和element-ui,这里写一下各种功能使用,有的是绕点弯路,有的是需要结合实现需要自己改写一下。
2024-01-16 12:08:07
18914
原创 生产问题(十三)谷歌Protobuf误修改系统全局时区
最近其他组出了个线上问题,导致用户的时间出现问题,影响用户出行,后来才发现是谷歌的Protobuf会更改系统全局时区。不过有一说一,感觉jdk的问题更大。
2023-12-25 12:38:14
26635
原创 生产问题(十二)GC垃圾回收导致空指针
最近线上出现由于线程池任务执行超时导致的空指针,按道理说基本不会很多执行超时的,看了看监控,那个时间点发生了gc,gc时间超过5s。 说明这次是gc垃圾回收导致的问题,实际上需要排查解决的s垃圾回收问题。表象总是和实际的原因差距很大。
2023-12-20 12:14:35
28040
原创 微信小程序(三)发消息
作者开发《目的地到了》的时候需要给用户发消息,一开始用了消息模板,后面上真机才发现微信把这个给取消掉了。后面通知用户都是通过订阅消息
2023-12-07 09:14:50
10189
原创 生产问题(十一)日志JavaAgent-NoClassDefFoundError
组内最近做了一个日志公共组件,用的是javaagent的方式,之前搞的maven jar包每次都要把所有系统都发一遍,太麻烦。javaagent通过Java虚拟机(JVM)的Instrumentation API来实现代码的侵入。通过Instrumentation API,Java agent可以在类加载过程中修改字节码,向目标代码中插入自定义的逻辑或进行其他操作。我们的组件使用bytebuddy进行字节码修改。
2023-12-05 18:54:02
9635
原创 生产问题(十)Log4j-tag丢失
最近有个线上日志丢失tag的问题,是组内封装了后置请求的拦截器把请求的响应结果存到ClickHouse里面去,但是日志总有一些tag丢失,作者提出父级线程的threadlocal被清空,同事认为可能是threadlocal的弱引用在gc的时候被回收。两种想法其实都是有可能的,那就要一个个验证。这里要感谢ld和cbc的共同排查、讨论,最后锁定原因是父级线程的MDC被组件清空。
2023-10-31 10:11:51
10924
原创 微信小程序(一)域名备案及HTTPS访问
接上篇云服务器-Docker容器-系统搭建部署-优快云博客,一方面是提高实践架构技术,一方面给家里人做点生活小工具。在搭建好服务器和前后端程序之后,经过测试,作者给家里人做的生活系微信小程序就差不多可以用了。先搞了一个体验版本试用。然后就崩了,接口不通,打开调试器再使用又可以了。
2023-10-23 09:17:07
34145
原创 生产问题(九)Mysql8.0 ddl问题
最近线上有个表要加几个字段,提交db单之后执行了一天都没有结束,这个表的容量不大不应该这样。因此作者与DBA进行了深入沟通,了解了集团使用gh-ost更新表结构的过程,问题出在交换表名的过程中。
2023-10-11 09:15:00
2983
原创 架构(十)Mybatis动态数据源及其原理
作者最近的平台项目需要一个功能,数据库是动态的,sql也是动态的,所以需要动态注入数据源,并且能够在运行过程中进行切换数据库。作者在这里分享一下做法,以及Mybatis这样做的原理。
2023-09-15 09:15:00
9877
2
原创 前端(一)Vue+Java实现动态表格展示
作者最近做的平台项目有个功能,展示数据执行结果,实际上就是要展示多个表格,但是表格的数量、行、列都是不固定的,相当于要做一个通用化的表格展示。
2023-09-12 09:15:00
13892
原创 架构(九)云服务器-Docker容器-系统搭建部署
最近公司在海外上云服务器,作者自己也搞了云服务器去搭建部署系统,方便了解整体架构和系统的生命周期,排查解决问题可以从原理侧进行分析实验。虽然用的云不是同一个,但是原理都是相通的。
2023-08-19 09:59:19
51439
原创 架构(八)低代码平台使用H2内存数据库
作者目前在做的平台使用到了H2,这里介绍下使用场景、使用方式,出于以下两个原因会使用H2: 1、平台化的项目一般是用户使用脚本或者sql进行通用的执行,这样可以实现低代码平台,不需要管理类之间的引入、依赖、编译,页面上点点点和输入就可以了,所以很多时候需要把数据放入H2进行sql解析实现跨库、跨实例、跨服务的数据分析2、在数据集合写起来非常复杂的时候,举个例子:集合a、b,ab的对象有字段c是一一对应的,然后集合a的其他字段和b元素下面挂着的集合又是对应的,这个组合写起
2023-08-11 12:13:09
4460
原创 开源工具(四)适合缓存
github地址:https://github.com/SongTing0711/fit-cache目前业内对于本地缓存、Redis、Es、Ck等缓存的使用处于比较随意的状态,一方面是资源的浪费,另外一方面如果是本地缓存可能是导致oom的最后一根稻草。作者创作的fit-cache提供key是否适合缓存,适合缓存的时间,解决缓存滥用、缓存同时失效等问题。
2023-07-21 19:20:38
25672
redis事务回滚工具
2023-05-24
基于加权计数器限流算法的java计算限流工具
2023-05-24
基于redis的java分布式代理锁
2023-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人