摘要: 回顾过去 我2016年大学毕业,出来参加工作,到现在有快七年时间,期间有五年是做应用开发,做应用开发这五年时间。我刚刚开始由初级到中级,成长得不是很快。主要原因:没有深入细节,学东西太表面了。就是花了很多时间学了一些技术,但是实际工作又没有应用场景。虽然当时能扩展知识面,过了很久下来,基本也忘得七七 阅读全文
posted @ 2023-04-09 22:15 GDOUJKZZ 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 一、RequireJS出现的历史背景 以前我们的老是做法是,引入一个个js文件,这种做法现在已经不能满足日常的需要了。 前端模块化的概念流行,也是RequireJS火起来的原因之一 AMD规范的实现(异步模块加载) 二、RequireJS 概念 特点:非常轻量,模块化 API:define,requ 阅读全文
posted @ 2022-03-11 15:15 GDOUJKZZ 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一、场景介绍 小并发下要解决生成单据号的问题,会碰到哪些问题呢?,接下来让我们一探究竟【这是小并发的解决方案,大家有更好的做好可以一起讨论分享】。 之所以叫小并发:是因为确实是小并发场景的应用模式,一般针对企业的内部系统,比如工厂里面的WMS,MES,QMS需要单据号生成的系统。 单据号的一般组成: 阅读全文
posted @ 2021-12-14 10:07 GDOUJKZZ 阅读(1219) 评论(2) 推荐(1) 编辑
摘要: 一、垃圾回收基本过程 先是从创建一个对象开始说起,创建对象除了申请内存,初始化,还会给CLR提供一些额外的信息【对象类型指针和同步索引块】,他们就是通过这些信息和CLR联系起来,不然后面怎么回收呢。 CLR进行内存分配的时候,会分为栈,小对象堆(SOH),大对象堆(LOH)。 不同代的回收频率和回收 阅读全文
posted @ 2021-12-02 11:46 GDOUJKZZ 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 一、NPOI的基本知识 碰到了导出大量数据的需求场景:从数据读取数据大约50W,然后再前端导出给用户,整个过程希望能较快的完成。如果不能较快完成,可以给与友好的提示。 大量数据的导出耗时的主要地方: 1、从数据库获取大量数据。如果一般百万级别左右的,走索引的查询,一般5秒左右可以把数据查出来。 2、 阅读全文
posted @ 2021-11-09 16:56 GDOUJKZZ 阅读(5784) 评论(0) 推荐(5) 编辑
摘要: 场景引入 今天碰到一个问题:当用户使用某个功能的时候,系统就直接挂了,一开始还以为是啥问题,最后发现是递归有环。 业务场景:有个功能需要获取地区树,刚刚好地区树里面由于人为修改的原因,造成了环。 A(广东,44)-->B(韶关,4402)-->C(南雄,44) 这种就是有环,会发生堆栈溢出,如果代码 阅读全文
posted @ 2021-11-05 16:28 GDOUJKZZ 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 今天同组的兄弟问我,他有一个导出的模板,大概如下: 【前面部分固定,中间是动态的几行,尾部是固定的部分】。其实这个很像单链表往单链表在指定插入数据。 他问我怎么做才好,他想到的做法是:因为这些动态列的不确定性,可能要自己后台根据这个excel,重新生成一个模板。 我给他的建议大概如下: 先假设这个模 阅读全文
posted @ 2021-08-19 07:08 GDOUJKZZ 阅读(1416) 评论(1) 推荐(0) 编辑
摘要: 生产端如何保证消息不丢失的问题 在消息的生产端,如果投递的消息出去在网络传输过程中丢失,或者在RabbitMQ内存中,还没有写入磁盘的时候,发生宕机,都会导致生产端,投递到MQ的数据丢失。 保证消息不丢失的confirm机制 在生产端,首先要开启一个confirm机制, 接着投递到队列中的消息,如果 阅读全文
posted @ 2021-03-17 07:29 GDOUJKZZ 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 最近把了老系统改造成基于Spring Cloud Alibaba为基础的微服务框架,接着便进行线上压力测试。 结果如下:在请求压力的高峰期间并且MQ中间件故障的情况,触发了降级机制,结果降级机制触发了之后运行了一小会,突然系统就完全卡死,无法响应任何请求。 这个系统的整体架构如下:简单来说就是又一个 阅读全文
posted @ 2021-03-16 06:30 GDOUJKZZ 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 读写锁的简单介绍 所谓的读写锁,就是将一个锁拆分为读锁和写锁两个锁,然后你加锁的时候,可以加读锁,也可以加写锁。 ReentrantLock lock=new ReentrantLock(); lock.wirteLock.lock(); lock.wirteLock.unlock(); lock. 阅读全文
posted @ 2021-03-11 07:28 GDOUJKZZ 阅读(393) 评论(0) 推荐(0) 编辑