- 博客(59)
- 收藏
- 关注
原创 人工智能(二)-Transformer模型
上篇文章以对话模式为例讲了目前人工智能的整体架构,但是大模型依然有很多细节问题,这里作者讲一讲目前的Transformers模型原理。
2024-05-22 20:49:29 874
原创 人工智能(一)架构
人工智能这个词不是很新鲜,早就有开始研究的,各种推荐系统、智能客服都是有一定的智能服务的,但是一直都没有体现出多高的智能性,很多时候更像是‘人工智障’。但是自从chatGpt3被大范围的营销和使用之后,人工智能逐渐体现出来他的智能性和高度的推理分析能力,他的范围也不再局限于软件行业,财务、法律、人事等等各种各样的行业都开始进行学习使用。 作者经过一段时间的研究学习,对于AI也有了自己的一些理解,在这里进行分享,希望读者可以解开心中的疑惑,并且做好未来AI的学习应对。
2024-05-16 12:06:33 1064
原创 问题(十五)性能分析组件类加载问题
最近作者在做性能分析服务的agent,有个功能是在代理启动的时候加载配置中心,拿到具体哪些目录下的类需要增强,这里碰到了类加载失败的问题。
2024-04-30 13:04:37 827
原创 微信小程序(六)定位搜索
作者上一章讲了微信小程序的地图实现微信小程序(五)地图-CSDN博客,但是还有一个功能是和地图紧密结合的,那就是位置搜索定位,这里作者讲讲实现和原理,包括城市筛选。
2024-04-12 12:04:08 642
原创 数据清洗(一)Excel
线上出现问题之后的数据清洗是少不了的,有的可以直接通过接口或者mq补偿,有的写sql更新db就可以,但是在匹配关系比较复杂的时候就需要建立临时表做关联匹配,数据量不大可以直接用excel进行匹配。
2024-03-22 10:04:29 1123
原创 架构(十六)本地方法缓存
作者需要在底层公共包里面加一个方法反射的工具类,看起来很简单的事,问题也不少,这里讲讲过程。在结合同事的思维误区聊聊本地加锁块的问题。
2024-03-06 11:45:20 3648
原创 架构(十五)Java字节码增强
一般如果需要做增强类的架构工具会使用SpringBoot提供的切面,但是这逃不开两个问题:1、使用方需要加注解代码;2、版本更新导致的发布。 所以java还提供了字节码层面的增强方案,对使用的系统是无感的。
2024-02-27 09:46:20 7375
原创 架构(十四)动态Groovy脚本
了解groovy和python的就可以直接到第三章了动态的脚本这样就实现了,其实用python也可以,java也有支持python的执行库,不过用起来就有点曲折了。即使用得是和java无缝集成的Groovy,过程也是有点绕弯的,而且还有一些小坎没写,写出来会降低作者的逼格,毕竟很多时候调试开发遇到的都是一些很小的问题一下子没转过来,事后想想又觉得脑子丢了一会。有兴趣的同学可以在评论区和作者讨论自己项目的疑难杂症!一起交流进步。
2024-02-20 12:10:35 10040 4
原创 架构(十三)动态本地锁
加锁大家都知道,但是目前提供动态锁的基本都是分布式锁,根据订单或者某个收费款项进行加锁。比如这个1订单要收刷卡费用,那就OREDER_1做为key丢到redis进行分布式加锁。这也是当下分布式锁最流行的方式。 但是对于平台项目或者一些并发程度低的场景,分布式锁就没有必要了,本地锁更加方便。但是本地锁只有synchronized、ReentrantLock之类的方式,想动态的加锁只用他们是实现不了的。
2024-02-06 18:52:15 1947
原创 架构(十二)动态Excel
作者最近的平台项目需要生成excel,excel的导入导出是常用的功能,但是作者想做成动态的,不要固定模板,那就看看怎么实现。
2024-02-05 12:01:14 12131 3
原创 架构(十一)从0到1实现动态定时任务
作者的平台项目最近需要实现一个功能,用户可选择这个任务什么时候执行,执行频率是什么? 这其实就是一个定时任务,只不过需要动态的,让用户自由选择。
2024-01-29 13:11:09 14305
原创 生产问题(十四)K8S抢占CPU导致数据库链接池打爆
线上一天出现了两次数据库连接失败的大量报错,一开始以为是数据库的问题,但是想了想如果是数据库的问题,应该会有大量的应用问题具体分析之后,发现其实是容器cpu出现了Throttled,导致大量线程阻塞
2024-01-24 12:18:10 16075
原创 前端(二)VUE功能集锦
作者开发工具平台的时候,用到了vue和element-ui,这里写一下各种功能使用,有的是绕点弯路,有的是需要结合实现需要自己改写一下。
2024-01-16 12:08:07 18708
原创 生产问题(十三)谷歌Protobuf误修改系统全局时区
最近其他组出了个线上问题,导致用户的时间出现问题,影响用户出行,后来才发现是谷歌的Protobuf会更改系统全局时区。不过有一说一,感觉jdk的问题更大。
2023-12-25 12:38:14 26494
原创 生产问题(十二)GC垃圾回收导致空指针
最近线上出现由于线程池任务执行超时导致的空指针,按道理说基本不会很多执行超时的,看了看监控,那个时间点发生了gc,gc时间超过5s。 说明这次是gc垃圾回收导致的问题,实际上需要排查解决的s垃圾回收问题。表象总是和实际的原因差距很大。
2023-12-20 12:14:35 27880
原创 微信小程序(三)发消息
作者开发《目的地到了》的时候需要给用户发消息,一开始用了消息模板,后面上真机才发现微信把这个给取消掉了。后面通知用户都是通过订阅消息
2023-12-07 09:14:50 9467
原创 生产问题(十一)日志JavaAgent-NoClassDefFoundError
组内最近做了一个日志公共组件,用的是javaagent的方式,之前搞的maven jar包每次都要把所有系统都发一遍,太麻烦。javaagent通过Java虚拟机(JVM)的Instrumentation API来实现代码的侵入。通过Instrumentation API,Java agent可以在类加载过程中修改字节码,向目标代码中插入自定义的逻辑或进行其他操作。我们的组件使用bytebuddy进行字节码修改。
2023-12-05 18:54:02 9382
原创 生产问题(十)Log4j-tag丢失
最近有个线上日志丢失tag的问题,是组内封装了后置请求的拦截器把请求的响应结果存到ClickHouse里面去,但是日志总有一些tag丢失,作者提出父级线程的threadlocal被清空,同事认为可能是threadlocal的弱引用在gc的时候被回收。两种想法其实都是有可能的,那就要一个个验证。这里要感谢ld和cbc的共同排查、讨论,最后锁定原因是父级线程的MDC被组件清空。
2023-10-31 10:11:51 10801
原创 微信小程序(一)域名备案及HTTPS访问
接上篇云服务器-Docker容器-系统搭建部署-CSDN博客,一方面是提高实践架构技术,一方面给家里人做点生活小工具。在搭建好服务器和前后端程序之后,经过测试,作者给家里人做的生活系微信小程序就差不多可以用了。先搞了一个体验版本试用。然后就崩了,接口不通,打开调试器再使用又可以了。
2023-10-23 09:17:07 27826
原创 生产问题(九)Mysql8.0 ddl问题
最近线上有个表要加几个字段,提交db单之后执行了一天都没有结束,这个表的容量不大不应该这样。因此作者与DBA进行了深入沟通,了解了集团使用gh-ost更新表结构的过程,问题出在交换表名的过程中。
2023-10-11 09:15:00 2807
原创 架构(十)Mybatis动态数据源及其原理
作者最近的平台项目需要一个功能,数据库是动态的,sql也是动态的,所以需要动态注入数据源,并且能够在运行过程中进行切换数据库。作者在这里分享一下做法,以及Mybatis这样做的原理。
2023-09-15 09:15:00 8352
原创 前端(一)Vue+Java实现动态表格展示
作者最近做的平台项目有个功能,展示数据执行结果,实际上就是要展示多个表格,但是表格的数量、行、列都是不固定的,相当于要做一个通用化的表格展示。
2023-09-12 09:15:00 13039
原创 架构(九)云服务器-Docker容器-系统搭建部署
最近公司在海外上云服务器,作者自己也搞了云服务器去搭建部署系统,方便了解整体架构和系统的生命周期,排查解决问题可以从原理侧进行分析实验。虽然用的云不是同一个,但是原理都是相通的。
2023-08-19 09:59:19 50876
原创 架构(八)低代码平台使用H2内存数据库
作者目前在做的平台使用到了H2,这里介绍下使用场景、使用方式,出于以下两个原因会使用H2: 1、平台化的项目一般是用户使用脚本或者sql进行通用的执行,这样可以实现低代码平台,不需要管理类之间的引入、依赖、编译,页面上点点点和输入就可以了,所以很多时候需要把数据放入H2进行sql解析实现跨库、跨实例、跨服务的数据分析2、在数据集合写起来非常复杂的时候,举个例子:集合a、b,ab的对象有字段c是一一对应的,然后集合a的其他字段和b元素下面挂着的集合又是对应的,这个组合写起
2023-08-11 12:13:09 4059
原创 开源工具(四)适合缓存
github地址:https://github.com/SongTing0711/fit-cache目前业内对于本地缓存、Redis、Es、Ck等缓存的使用处于比较随意的状态,一方面是资源的浪费,另外一方面如果是本地缓存可能是导致oom的最后一根稻草。作者创作的fit-cache提供key是否适合缓存,适合缓存的时间,解决缓存滥用、缓存同时失效等问题。
2023-07-21 19:20:38 25578
原创 生产问题(八)对象深拷贝导致空指针
今天在发布的时候产生了空指针,根据堆栈显示BeanCopyUtils.copyAppointFields的时候产生了空指针,这里说明下这个工具类和方法是公司内部封装的,用于指定部分字段进行复制。 作者看到堆栈第一反应就是这个工具类有问题,作者和leader讨论了下,觉得是有可能的,下面介绍下排查过程和原理。
2023-07-06 10:18:11 734
原创 架构(七)热点探测-HotKey在物联网可以做什么
博主今天聊一聊物联网领域的热点探测,讲一讲架构和源码,主要是京东武伟峰的HotKeyhotkey: 京东App后台中间件,毫秒级探测热点数据,毫秒级推送至服务器集群内存,大幅降低热key对数据层查询压力核心功能:热数据探测并推送至集群各个服务器,适用于许多第三方存储的热点探测。说起来有点显得官方,具体看一下这个中间件在物联网、资产领域可以使用到的场景,然后介绍一下它的实现原理,便于搭建和二次开发。
2023-05-23 14:37:34 22393 6
原创 跟chatGpt 聊聊发布的时候老节点的线程池会怎么样
今天同事提了一个问题,每次系统发布的时候在老的节点服务里面的线程池会怎么样,队列里面的任务会被执行完毕吗? 博主一直认为优雅退出一定是会等执行完才退出的,结果跟chatGpt聊了聊,一波三折。
2023-05-17 20:30:22 7550
原创 架构(六)系统架构设计
最近拜读了携程一位大牛:Gavin的文章,干货 | 携程商旅订单系统架构设计和优化实践,里面谈及许多架构分层的理念,读后感悟很多,结合博主自己在系统开发过程中的经验聊一聊架构设计。
2023-05-16 18:43:03 49775
原创 会出现Mysql提交事务之后Spring以为没有成功吗
最近有人用博主的Redis回滚工具的时候提出了一个问题,这个工具是根据事务过程中的异常进行回滚,从而保证DB与redis的一致性。 那么如果在事务提交的时候Mysql成功了,但是Spring以为没有成功抛出异常,这时候redis回滚工具失效,那么不就变成了mysql有数据,redis没有了吗? 这位同学明显对于spring和mysql的事务交互还不是那么理解。
2023-04-28 17:23:22 771
原创 并发限流与计算限流的使用与比较
最近有并发较高影响服务稳定性,之前博主分享过自己封装的计算限流工具,github地址:GitHub - SongTing0711/count-limit主要是针对计算资源如:CPU、内存等,使用的其实是加权计数器的限流算法,对于并发流量比较高的场景,其实可以用。但是在计数的过程中要进行资源数量的扣减和归还,这个其实在高并发的时候是多了一层逻辑处理的。如果并发场景消耗的资源比较少其实直接使用滑动窗口、令牌桶等限流算法更加适合,也就是只用于高并发和
2023-04-24 18:44:20 7583
原创 云计算(一)K8S初始化问题
作者公司使用的是K8S底层做云计算,这天有个节点发布的时候卡住了,解决方式分为长短期。 作者跟运维做了一些分析讨论和解决方案,涉及到许多K8S相关的知识,有兴趣的同学可以看看这个原理分析过程。
2023-03-08 09:51:27 25514 1
原创 架构(五)数据批处理加速(GC收集器->安全点->线程池)
有个数据镜像系统每天0点会进行批量处理生成日表,随着数据量不断增大,处理时间从之前的一个小时,目前每天需要接近两小时,一旦继续延迟会影响BI、库存等很多任务。领导让博主进行优化提速。博主从GC收集器、可数循环的安全点放置、CPU与线程搭配等多个方向进行分析实践。
2023-02-07 09:46:38 14061
原创 Java类加载
最近社区讨论了一个比较有趣的类初始化代码public class Test2 { public Test2() { s1++; s2++; } private static Test2 test2 = new Test2(); private static int s1; private static int s2 = 3;}这里涉及的知识其实非常底层,只依靠java知识和开发经验是不行的,必须对jvm有深入的了解才能分析清楚。
2023-01-18 14:31:50 8178
原创 架构(四)Mysql事务、同步、备份
之前在部门分享主从同步延迟排查解决线上Mysql主从同步延迟排查解决_tingmailang的博客-CSDN博客的时候,同事产生了一些新问题,而且部分同事对于事务、同步、备份的了解仅限于网上的一些博客和社区,不深入也不完全正确,这里做一些分析
2022-12-14 09:49:52 1663
原创 生产问题(七)Mysql for update 导致大量行锁
最近同事的复盘会上提到自己for update一个不存在的where条件导致表锁,然后产生大量的事务失败和读写超时,这时博主非常奇怪,因为虽然网上许多博客写Innodb的表锁行锁与锁升级,但是事实上这都是错误的观点。
2022-12-09 09:47:33 52497 1
redis事务回滚工具
2023-05-24
基于加权计数器限流算法的java计算限流工具
2023-05-24
基于redis的java分布式代理锁
2023-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人