- 博客(170)
- 问答 (5)
- 收藏
- 关注
原创 java多线程之批量插入
身体虽弱,却不宜过于爱惜,精神愈用则愈出,阳气愈提则愈盛,每日做事愈多,则夜间临困愈快活。若有一爱惜精神的意思,将前将却,奄奄无气,绝难成事。公司使用mybatis一次性批量插入,时间略长,本地测试一下。
2025-02-04 16:20:46
209
原创 2024年失业八个月
谁知道今年的行情烂的不像话,往前倒三四年,我学的这些其实应该够了,基础知识7788,项目7788,各种框架知识点7788,放到24年,差的很远,以前是只问知识点,项目,你大概能说上几个方案就可以了,24年会问专项的项目,如果不是直接就不搭理人了,知识点会刨根问底。对于没本事的我来说,24年真的没挣到钱,去年在zw的时候,每天五点半就下班,而且上班老实讲也没什么事情,就这样,我总觉得自己没时间学习,所以在2月底辞职,专心学习,然后准备跳槽。2025年1月20日,除夕,晴,在回家的高铁上。
2025-01-28 12:13:23
123
原创 Spring Retry
Spring Retry是一个重试框架。无论是单体项目还是分布式项目,尤其是分布式项目中,系统的调用是有一个不确定性和不稳定性的,比如说网络波动、服务间的通信延迟、暂时性的系统故障等等,都可能会导致我们系统操作失败。但是这些故障往往可能都是暂时性的,可以通过简单的重试就可以成功。比如说在分布式系统中进行远程调用,系统A调用系统B(5台服务器的集群),系统在调用的时候是随机去调用系统B的其中一台服务器,但是系统B可能会因为网络问题,或者说系统B本身就有问题,这导致系统A调用B,是有可能会不成功的。
2024-11-01 11:25:35
918
原创 RabbitMQ路由键与队列的绑定
凡人与圣人的差别就在眼前的那一张纸,凡人投胎转世都带着前世死去时蒙在脸上的蒙脸纸,只有圣人是被天神揭去了那张纸投胎的。todo 这其实不能单独成一篇文章,有时间给合并或者删除吧。通过死信队列与延时队列定时释放订单。
2024-10-31 11:31:30
428
1
原创 乐尚代驾的项目问题
例如,司机端在更新代驾车辆信息时,如果网络出现故障,可能无法将信息成功上传到服务器,从而导致订单状态停留在 “更新代驾车辆信息” 之前的状态。如果说是因为网络的原因导致订单保存失败,可以判断司机的位置和乘客的位置是否在一起,并且是否在运行中,如果是的话就直接改成开始代驾的状态。对最近的订单状态进行扫描,如果发现有订单状态长时间不变的就去查询该订单,例如司机已经到达代驾地点但是忘记点已到达,提醒司机。例如,数据库连接池耗尽,新的状态更新请求无法获取到数据库连接,从而无法执行更新操作。
2024-10-29 19:40:46
408
原创 Spring知识点(面试可能不会问到但是需要了解的)
通过IO流将XML读取到内存,dom4j解析成document,获取到node节点之后,取出key和value,放到具体的对象中去。注解通过反射的方式,获取到Class对象,通过调用Class对象的getAnnotation解析,如果加了@Component、@Service等,就将它创建对象无论是注解还是XML,解析完成之后都会变成一个,放到一个BeanDefinitionMap中去。
2024-10-27 19:29:31
325
原创 JUC之AQS
AQS本质就是java中的一个抽象类,AQS是JUC下的一个基础类,大多数的并发工具都是基于AQS实现的AQS本质并没有实现太多的,(单把AQS拿出来,它既不是锁也不是计数器,也不是并发集合),只是对外提供了内容,来帮助实现其他的并发内容。
2024-10-22 20:46:10
354
原创 SpringBoot中的对象
是 Spring 框架的核心接口之一,用于管理和创建 Bean。它提供了一种机制,通过配置文件或注解来定义和实例化 Java 对象,并将这些对象存储在一个容器中,以便在应用程序的其他部分进行使用。
2024-10-18 13:05:26
889
1
原创 redis的线程模型
I/O 指的是网络 I/O, 多路指的是多个 TCP 连接(如 Socket),复用指的是复用一个或多个线程。I/O 多路复用的核心原理就是不再由应用程序自己来监听连接,而是由服务器内核替应用程序监听。
2024-10-09 16:24:38
1307
原创 Spring之RequestContextHolder
员工不必为自己的弱点而太多的忧虑,而是要大大地发挥自己的优点,使自己充满自信,以此来解决自己的压抑问题。我自己就有许多地方是弱项,常被家人取笑小学生水平,若我全力以赴去提升那些弱的方面,也许我就做不了CEO了,我是集中发挥自己优点的优势。有一些员工工作干得好好的,正在出成绩的时候,不相信实践中会出真知、出将军,突然一下子要去考研,以使自己得到全面发展。要因势利导,使他们明白奋斗的乐趣,人生的乐趣。我们的主管何不妨每月与自己的下属或周边喝喝茶,明确传达一下自己对工作的理解和认识,使上、下都明白如何去操作。
2024-09-28 12:34:48
333
原创 微信抢红包设计
假设100元,5个人抢,怎么抢,每个人应该多少钱?因为肯定是微服务的架构,第一时间想到的肯定是分布式锁,但是在这么高的并发下,分布式锁一定会严重影响性能。我们可以在支付红包的时候,就把每个人的金额都算出来,然后放入队列中。抢的时候从队列中取就可以了,就不存在并发的问题了。hash的作用是,我们抢完红包之后,要看每个人抢了多少钱,比方说ls抢了3元,zs抢了4元,rp是red package,188是红包的id。
2024-09-23 21:26:15
416
原创 redis哨兵模式
有机会去北京,可以去景山公园看看,从西门进去,那儿是一片歌的海洋,热得象海啸一样奔放,这些都是垂暮之年的老人,几十人一族,几百人一团,都在放声歌唱,多么的乐观,多么的豁达。快乐的人生,无论处境多么困难,只要你想快乐一定会快乐。主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主机宕机,从机依然是连接到主机的,但是没有写操作。从机宕机,在此期间主机依然在写入数据,等从机恢复,还能获取到主机这段时间的数据。
2024-09-06 14:02:59
1243
原创 Java灰度发布
华为的员工有这个经济基础,有条件比国人先走一步,做一个乐观、开放、自律、正派的人,给周边做个表率。一部分员工,不知道自己的祖坟为什么埋得这么好,还是碰到了什么神仙,突然富有后,就不知所措了。有些人表现得奢侈,张狂,在小区及社会上表现出那种咄咄逼人,不仅自己,自己的家人也趾高气扬……一部分人对社会充满了怀疑的眼光,紧紧地捂着自己的钱袋子,认为谁都在打他的主意,对谁都不信任……,一脸懵,好像在哪儿听说过,毕竟我都没发布过,之前都是项目组长在干这些事儿,所以聊聊,了解一下。任正非:要快乐地度过充满困难的一生。
2024-09-04 12:34:33
372
原创 Cookie、Session、Token、JWT的区别
我们要引导员工理解、欣赏、接受和习惯高雅的生活习惯与文化活动,使他们从身心上自己解放自己。这次我们不惜使用为客户提供的服务,作一次演示,让大家看到高雅的生活无处不在。员工不能成为守财奴,不能成为金钱的奴隶,丰厚的薪酬是为了通过优裕、高雅的生活,激发人们更加努力去工作、有效的奋斗而服务的,不是使我们精神自闭、自锁。应该看到欧美发达国家的人民的自律,社会道德风尚是值得我们学习的。欧美国家的人,大多数不嫉妒别人的成功,也不对自己的处境自卑,而且和谐相处。任正非:要快乐地度过充满困难的一生。
2024-08-28 15:18:53
400
原创 java之juc之线程池
dubbo直接继承的 AbortPolicy输出了一条警告级别的日志,日志内容为线程池的详细设置参数,以及线程池当前的状态,还有当前拒绝任务的一些详细信息。可以说,这条日志,使用dubbo的有过生产运维经验的或多或少是见过的,这个日志简直就是日志打印的典范,其他的日志打印的典范还有spring。得益于这么详细的日志,可以很容易定位到问题所在输出当前线程堆栈详情,这个太有用了,当你通过上面的日志信息还不能定位问题时,案发现场的dump线程上下文信息就是你发现问题的救命稻草,这个可以参考。
2024-08-25 15:09:27
1064
原创 分布式事务理论和解决方案
business(下单)远程调用库存(storage),保存订单(order),扣减积分(account),只有这三个步骤全部成功,我们的下订单才算成功。如果是单体应用,我们将三处代码全部写在一个系统里面,而且我们全部连向的是一个数据库,这样的话我们使用本地事务就可以控制,只要有一个失败则全体回滚。
2024-08-24 17:08:33
878
原创 SpringCloudAlibaba Seata分布式事务
华为公司一直贯彻选拔制,因为人才不是靠培养,而是自我成长,我们要创造人才成长的土壤,就如“一杯咖啡吸收宇宙能量”。我们不要给高级专家担负太多管理人才的责任,不要搞“拉郎配”,要给他们自由度,他有多大能量就发挥多大能量。
2024-08-22 15:45:55
317
原创 数据库的MVCC实现原理
MVCC(Multi-Version Concurrency Control | 多版本并发控制)InnoDB通过为每一行记录添加两个额外的隐藏的值来实现MVCC,这两个值一个记录这行数据何时被创建,另外一个记录这行数据何时过期(或者被删除)。但是InnoDB并不存储这些事件发生时的实际时间,相反它只存储这些事件发生时的系统版本号(LSN)。这是一个随着事务的创建而不断增长的数字。每个事务在事务开始时会记录它自己的系统版本号。每个查询必须去检查每行数据的版本号与事务的版本号是否相同。
2024-08-20 18:31:04
843
原创 Spring之AOP
其实,集体评议往往会埋没人才。“歪瓜裂枣”很多,我们的专家要识别他特殊能力的一面就行,也不用全面评价一个人,“不拘一格降人才”。比如,清华大学数学系主任熊庆来让只有初中学历的华罗庚破格进入清华大学,开启了华罗庚高水平数学的研究生涯;罗家伦当清华校长时,录取了数学成绩只有15分的钱钟书,成就了一位文学大师。初始职级,在校园招聘时可以定一次,在与优秀新员工喝咖啡时也可以再定一次,我们直接授权这批专家。
2024-08-16 17:21:41
564
原创 定时任务调度框架xxl-job
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
2024-07-23 14:52:13
1119
原创 乐尚代驾四乘客下单
保存完订单数据就完事了吗?肯定不是的,因为还要启动任务调度,搜索附近可接单的代驾司机,这一过程相对复杂与繁琐,后续会逐渐完善,先完成一个简单的下单过程。
2024-07-22 15:57:51
438
转载 QPS、TPS、RT、并发数、吞吐量分别是什么意思,并发量如何估算
我讲的是六十年代,那个时代是反对白专,缺少技术性的书籍,不像今天这么多书籍,还有互联网,青年人应珍惜这个机会。在网络上,思想的碰撞是全球化的,碰撞的火花也是在时代前沿的。它推动着一个庞大的群体在创造世界,世界的进步速度由此加快,应该是万众力拔山兮。擦亮花火、共创未来——任正非在“难题揭榜”花火奖座谈会上的讲话。首先,他们都是高并发系统中的系统指标。
2024-07-12 15:14:47
284
原创 mysql优化面试总结
只是我常常觉得很多话无从说起。就像在平时,见到一些陌生人,一些熟悉和欢喜的人,不知道与之说些什么。也很少对身边的人谈论自己。所有的时间和记忆,都可以交付给书写。有些在书中说过多次,却似乎并未说出真正想表达的意思。有些从无提起过,它们在黑暗中更显得郑重端庄。有些事是不能轻易说起的。书写可以,但那也是不足够的。
2024-04-29 18:38:08
457
原创 springboot之mybaitsplus
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2024-03-06 16:34:53
1111
原创 springboot之异步任务、邮件任务、定时任务
世界是复杂的,但又不是随机的,知识也应当如此。求知的道路,意味着永恒的疲倦以及偶尔的惊喜。可能性的艺术:比较政治学30讲。
2024-03-05 15:15:02
482
原创 springSecurity
在web开发中,安全第一位。我们在servlet中使用过滤器、拦截器也可以做到安全的功能,框架会更方便简单一点。做网站:安全应该在设计之初就考虑!shiro、springSecurity:两者很像。他们都可以做认证和授权的功能。
2024-03-03 11:05:32
1020
转载 linux命令之make
make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法。makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。如果死的是我,她们会怎么议论呢?
2024-01-31 17:01:14
183
原创 sql优化之索引
索引官方定义:索引是帮助mysql高效获取数据的数据结构。索引的目的在于提高查询效率,可以类比字典。在数据之外,,这种数据结构以某种方式(引用)指向数据。这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。例如将id加索引,在mysql数据库里开辟一块存储空间来存放索引数据,查询的时候如果根据id去查询,就要走这个索引库,在索引库找到之后,就能定位这条数据,因为索引库的每一项和数据库的物理地址是绑定的,你能找到这条索引,就能找到这条数据所对应的物理地址,就可以直接获取这条数据。
2023-09-23 20:09:58
317
原创 java之juc二
因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分的(对于double和long类型的变量来说,load、store、read和write操作在某些平台上允许例外)如果对一个变量进行lock操作,会清空所有工作内存中此变量的值,在执行引擎使用这个变量前,必须重新load或assign操作初始化变量的值。线程、工作内存、主内存。
2023-08-16 18:56:36
253
原创 python之logging模块
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;
2023-03-29 11:20:39
434
1
原创 BigDecimal
随着计算复杂,用户需求变大,传统取整不能满足用户需求,计算精度同样需要更加精确。根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值。特别是金融项目,出现 0.30000000000000004 体验不是特别好。还有如果需要对金额,进行四舍五入,保留2位。Math.round() 不能满足事件需求所以 我们才会考虑用 BigDecimal ,解决这些问题。
2023-03-23 18:16:14
298
原创 springboot之thymeleaf
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的html文档。从字面上理解模板引擎,最重要的就是模板二字,这个意思就是做好一个模板后套入对应位置的数据,最终以html的格式展示出来,这就是模板引擎的作用。模板引擎的功能就类似我们的会议室开会一样开箱即用,将模板设计好之后直接填充数据即可而不需要重新设计整个页面。提高页面、代码的复用性。
2023-03-11 13:52:17
5188
原创 java调用elasticSearch api
java操作es有两种方式通过操作es的9300端口,9300是tcp端口,集群节点之间通信也是通过9300端口,会通过9300和es建立一个长连接,下面的es的依赖可以直接操作但是随着es的版本的提升spring-data需要封装不同版本的es的jar包,好像还没封装到这个版本(2019),另外官方也不推荐通过9300来操作es,而且这种方式在es8以后将被废弃通过9200操作,发送http请求我们在浏览官方文档的时候发现,js可以直接操作es,那为什么我们不直接用js来操作es呢?
2023-02-20 16:39:51
3264
原创 记录自己那些蠢到爆炸的操作
如果你觉得这篇文章的名字为何如此的沙雕,那说明你是一个认真细致的同学,就别来看笑话了这篇文章的重点不在技术、架构巴拉巴拉之类专业的问题,而是明知还错的不认真马虎的问题,所以如果你的问题确定是技术问题,就也别浪费时间了。
2022-10-12 10:27:39
476
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人