- 博客(1163)
- 资源 (22)
- 收藏
- 关注
原创 mysql的深分页导致的性能问题
当我们使用limit #{offset} #{size} 先从数据库中查询到具体的offset+size的数据,然后抛弃offset的数据,选取最后的size数据。explain sql,发现走的是索引index2,但是条件中存在status=1.这个字段不在索引中,因此会执行回表查询,,获取status字段之后,在进行数据筛选。List查询的优化,一方面需要修改索引尽量覆盖查询条件,另外一方面,针对翻页查询,需要进行sql优化。业务系统上分2次调用,分别走index2,以及主键索引;
2024-09-22 20:57:00 273
原创 如何实现业务依赖多线程并发
/此处使用的是层次遍历的方式,第一次循环,把所有的根节点进行并发的执行。可以把业务依赖变为森林,使用树形结构表示森林,然后使用层次遍历的方式遍历。//启动多线程并发,执行,并且把值放到上下文中。// 然后在根据第二层的叶子节点并发执行。//构建并发查询的请求。//业务上构建条件依赖树。
2024-08-28 08:58:10 438
原创 如何排查cpu飙高
3、查看dump文件,找到对应的线程 就可以找到问题了。1、先使用linunx命令查询top的线程。2、把jvm内存dump下来,
2024-08-28 08:16:24 287
原创 大模型应用开发的框架
基于这个开源版本的框架搭建一个内部的应用框架,供各个业务使用,封装一些额外的能力。1、python的版本langchain。
2024-08-09 22:14:12 175
原创 关于使用webflux开发思考
1、目前终于看到有系统使用spring的webflux进行系统开发,主要原因是比如gpt、千问的大模型数据返回都支持流式方式返回,比如和用户对话,可以流式的把数据给用户展示,不用一次性把数据展示到页面上。webflux还有一个能力就是,浏览器的请求到服务端之后,服务端的这个请求就可以释放掉,然后等有了数据之后,web容器在启动线程给浏览器发送数据。webflux=java8的stream+java9的发布者和订阅者。
2024-08-09 21:04:25 162
原创 java线程池灵魂8个问题
通过阻塞队列的take()方法让线程一直等待,使得Worker的run()方法一直阻塞,直到获取到执行的任务,执行完毕任务后继续阻塞等待,使得线程生命周期一直在RUNNABLE和WAITING状态之间流转,保证核心线程一直存活。1任务处理策略:线程池优先使用核心线程来处理任务,从任务添加策略可以看出,先考虑创建核心线程处理,在考虑放到阻塞队列,然后考虑创建非核心线程,达到饱和之后使用拒绝策略。4、状态管理:线程池状态和数量使用ctl表示,高3位,低29位表示线程池数量。1、线程池状态和工作线程数量的并发。
2024-07-30 07:48:18 454
原创 如何自定义语法与其他语句进行映射
1、如何自定义注解与hbase的api进行通信,自动进行类映射。各种场景,都可以写一个针对特定软件的语法,进映射。2、如何定义一个对象 与sql中语法进行匹配。
2024-07-28 22:16:05 294
原创 计算机网络通信
2、局域网的交换机:mac和交换机端口路由表-数据链路层 mac地址。3、不同局域网之间进行通信,主要是路由器-网络层-ip。源ip到目标ip的不变化,但是mac地址在一直变化。1、最原始的hub结构。
2024-07-13 22:04:02 191
原创 我会什么开发技能
DDD设计(就是把方法放到一个类中,不好理解,后续很难维护)、多态(父类的对象指向子类的引用),设计模式一定要多使用,否则业务代码很难扩展也很容易出问题,策略,工厂,构建者,单例,抽象工厂,动态代理,模版,装饰,适配器。springboot,mybatis,docker,netty,xxxjob,zk,redis,配置中心,kafka,rocketmq,hbase,mysql,hadoop,hive,postgresql。3、一个接口定义标准,然后spi回掉外围,还可以使用rpc的方式进行调用,下游实现。
2024-07-12 23:29:57 545
原创 IO多路复用的原理以及高性能的实现
2、实现上面的这个网络的模型,可以学习netty,里面封装了IO多路复用。1、Scalable IO in Java--原理。
2024-07-11 23:52:16 114
原创 jdk中自带的并发类
countDownLaunch:等待所有线程都完成,主线程在执行。CyclicBarrirer 内存屏障。exchanger 线程之间交换数据。1、seamplore 信号量。phaser 阶段协同器。
2024-07-10 23:35:56 217
原创 java中的线程
主要是为了可见性能,cpu每次执行缓存行 是64个字节,一个long是8个字节,因此定义7个long占满缓存行,这样就不会因为其他的字节变化导致替换缓存行了。4.1原子性:保证多线程同时访问成员变量时候,并发出现问题;可见性:就是要保证cpu在执行线程中获取的数据与jvm主内存中数据是一致性的。CAS是一种自旋锁方式,优点就是可以不释放cpu,不做线程上下文切换。缺点:cpu一直在执行,浪费cpu。还可以出现aba的问题,可以是用版本的方式进行控制。3、sleep和wait的区别。4、并发编程的三大特点。
2024-07-07 21:48:57 221
原创 java中AQS的原理
获取锁,cas获取锁,如果获取锁失败,那么则加入队列,加入队列之后,通过再次自旋获取锁,还是获取不到,那么则进行阻塞。那么就根据双向链表中的waitStatus,0,-1,1。在了解AQS之后,对于线程池中的Worker实现aqs的tryAcquire,tryRelease方法 实现锁不能重入。以及一个work线程在操作的时候 可能会被中断,因此使用同步阻塞的方式进行阻塞,阻塞之后使用队列的方式进行唤醒,或者回收。CAS的原理,就是使用操作系统的一个原子操作保证对一个字段更新的原子性。
2024-07-07 00:26:34 238
原创 java线程池的使用
/ThreadPoolExecutor.DiscardOldestPolicy 丢弃执行队列最老的任务,尝试为当前提交的任务腾出空间。// ThreadPoolExecutor.CallerRunsPolicy 直接有提交任务这执行这个任务。//向线程池提交的2种类型的任务 Runnable,Callable。//创建一个不限线程上限的线程池,任何提交的任务度可以立刻执行。//创建只有1个线程的线程池。//创建固定大小的线程池。//线程池的工作顺序。//线程池的拒绝策略。
2024-07-02 07:49:02 368
原创 java学习资料
SonarQube:通过插件集成分析组件,提供评估最终报告。checkstyle:对编程规范和标准进行静态分析。findbugs:通过字节码静态分析找出潜在bug。GO:thoughtWork开源持续集成方案。Bamboo Atlassian的继续集成。Travis:提供托管服务,常用于开源。pmd:对源代码不良编程习惯进行分析。asm:通用底层字节码操作以及分析。javasisit:简化字节码编辑。Jenkins:基于服务器部署服务。CircleCI :托管服务。Codeship:托管服务。
2024-06-28 08:45:10 300
原创 产品经理需要学习的知识
2.2 产品从营销到决策,哪些环节需要用户洞察。系统性思考用户需求:生命周期、用户规模。4.1 用户洞察工具 persona。通过价值主张思考决策产品的市场定位。经济、文化、科技如何影响产品。直接、间接、广义竞品的分析与思考。2.1 如何围绕用户提出好的假设。3.3 用户访谈的关键问题有哪些。5/如何做好互联网产品的用户洞察。1、如何全维度结构化思考产品定位。系统性思考用户需求:刚性、粘性。3.1 如何界定谁是你的用户。3.2如何准确识别你的用户。3、用户洞察的流程和方法。3.4 做好用户洞察方法。
2024-06-10 11:47:43 175
原创 大语言框架
然后使用langchanin进行编程的时候,只需呀使用接口,然后使用参数指定是哪个实现。目前这个lanagchanin就是标准,各种语言模型进行实现。基本的封装,输入模版,模型选择, 输出结果解析,rag技术。
2024-06-09 10:51:29 133
原创 机器学习视频总结
卷积神经网络B站最近火到爆炸的大佬之一吴恩达【深度学习】-CNN卷积神经网络_哔哩哔哩_bilibili深度学习吴恩达深度学习-哔哩哔哩_bilibili7. 07 - 1.6Geoffrey Hinton访谈(选修)_哔哩哔哩_bilibili序列模型deeplearning.ai - 网易云课堂LLM大语言模型【大模型入门课】吴恩达—基于 LLM 的生成式人工智能【中英字幕】_哔哩哔哩_bilibili机器学习的数学基础:[中英字幕]吴恩达机器学习系列课程-8-3.模型展示Ⅰ-网易公开课
2024-06-04 08:52:46 123
原创 如何实现图片从一个云服务商存到内部文件存储系统中
(2)获取图片的数据,是一个输入流,千万不能new 组数一个一个搞。如果获取的是一个base64编码的数据,可以使用commons -codec的jar包,直接进行base64的解码,同时需要写一个去掉前面无用的前缀,将后面数据进行base64解码。这样就不会出现java内存溢出的情况,大大降低了风险。(1)使用okhttp请求url获取图片的数据。(3)调用内部文件上传接口,将输入流传入。
2024-06-04 08:29:29 152
原创 玩转 Spring 全家桶
如果你不是一个小白,可以学习一下玩转 Spring 全家桶--丁雪峰 这个老师讲解的挺好的,在实际的工作中也是有用到的。学习还是要看视频快入的掌握全局,然后有时间在去看官方的英文文档在详细的了解。很多时候学习要快速的掌握。
2024-04-25 00:03:38 165
原创 Linux 性能优化实战
最近喜欢花钱买一些课程进行学习,这个老师讲解的linx,瞬间就明白了cpu,内存,网络,io的基本概念,其实可以把大学中学习的知识作了一个很好的串联。当时在学习的时候没有这么透彻,现在反过来看,通过这个学习 可以加深对linux的理解。极客时间 倪朋飞 Linux性能优化实战。
2024-04-24 23:48:49 108
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人