自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 问题(二十)迷惑的换行

遇到一个模版替换占位符换行的小问题,记录一下

2025-01-22 12:17:40 426

原创 大数据(一)MaxCompute

作者后面会使用MaxCompute,所以在进行学习研究,总会有一些疑问产生,这里讲讲作者的疑问和思路

2024-12-04 09:37:49 2499

原创 问题(十九)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

原创 生产问题(十八)FullGC排查

最近服务发生fullgc,响应时长大幅增长

2024-08-15 09:44:58 828

原创 生产问题(十七)静态变量导致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

原创 前端(三)React踩坑记录

作者最近新的平台项目是需要用react的,和vue区别还是比较大的,这里记录下踩坑和使用经验。

2024-04-01 19:33:32 1419

原创 数据清洗(一)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-18 08:55:24 5611

原创 微信小程序(四)登录

微信小程序的登录可以说是必备的门户,作者今天介绍一下微信小程序如何登录。

2023-12-12 19:14:24 7294

原创 微信小程序(三)发消息

作者开发《目的地到了》的时候需要给用户发消息,一开始用了消息模板,后面上真机才发现微信把这个给取消掉了。后面通知用户都是通过订阅消息

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

原创 微信小程序(二)开发审核踩坑记录

作者在开发微信小程序《目的地到了》的过程中遇到过许多问题,这里讲讲一些技术和经验问题。

2023-11-30 12:01:55 36118 1

原创 生产问题(十)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事务回滚工具

github地址:https://github.com/SongTing0711/redis-transaction 博客地址:https://blog.youkuaiyun.com/m0_69270256/article/details/124164125?spm=1001.2014.3001.5502 基于SpringBoot的轻量级redis事务回滚机制,使用栈和ThreadLocal记录业务链的redis操作,发生异常进行回滚,参考了阿里巴巴Seata AT模式的db回滚策略:补偿回滚,记录前镜像与当前操作语句,反向解析生成补偿动作。 1、目前支持链接redis的工具主要是Redisson、RedisTemplate、StringRedisTemplate,默认Redisson 2、进行回滚时需要考虑是否要进行查询前镜像,可以通过设置RedisTransactionCommonUtil的QUERY_PREV属性 3、需要使用RedisTransactionCacheUtils操作需要回滚的redis数据,此时加入threadlocal

2023-05-24

基于加权计数器限流算法的java计算限流工具

代码地址:https://github.com/SongTing0711/count-limit 博客地址:https://blog.youkuaiyun.com/m0_69270256/article/d 许多需求计算量都在扩大, 针对大容量、高并发的接口、mq或者其他计算方法,同一时间在运行的计算维度进行限制,相当于把资源到计算的对象维度。 不同于参数限制,工具针对的是服务所有线程对于该计算维度的限流。 与市面上开源的限流工具(如谷歌的RateLimiter令牌桶限流、京东HotKey的滑动窗口限流,更关注流量突发缓解,但是过去流量占用资源是否释放不被关注)不同点在于使用加权计数器限流算法,关注流量的处理结果 1、计算量的存储与并发控制主要分为redis和本地两种,目前支持链接redis的工具主要是redisson、spring redis 2、因此有七种使用方式,默认使用ReentrantLock加锁,本地map缓存 3、如果使用工具的地方很多,存储比较适合使用redis 4、如果限流的方法qps很高,使用redis进行加锁处理可能是比ReentrantLock更好的选择

2023-05-24

基于redis的java分布式代理锁

分布式代理锁,动态的锁后缀采用ThreadLocal或者参数名获取 锁粒度自定义选择,目前实现基于redis,后续扩展zk等 SpringBoot,默认使用redisson链接redis,可以更改注解参数使用Spring redis工具 key分为:无后缀、参数中获取、使用ThreadLocal获取 代码地址:GitHub - SongTing0711/distributed-proxy-lock 博客地址:https://blog.youkuaiyun.com/m0_69270256/article/details/124927336?spm=1001.2014.3001.5502

2023-05-24

空空如也

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

TA关注的人

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