51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
WOT技术大会
IT证书
公众号矩阵
移动端
短视频
免费课程
课程排行
直播课
软考学堂
全部课程
厂商认证
IT技术
24年11月软考
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
意见反馈
社区规则
社区活动
默认
发布时间
热度
原创
精华
热门标签
鸿蒙
华为
HarmonyOS
JDK的一个Bug,监听文件变更要小心了
背景在某些业务场景下,我们需要自己实现文件内容变更监听的功能,比如:监听某个文件是否发生变更,当变更时重新加载文件的内容。看似比较简单的一个功能,但如果在某些JDK版本下,可能会出现意想不到的Bug。本篇文章就带大家简单实现一个对应的功能,并分析一下对应的Bug和优缺点。初步实现思路监听文件变动并读取文件,简单的思路如下:●单起一个线程,定时获取文件最后更新的时间戳(单位:毫秒);●对比上一次的时间戳,...
梦叶草789
0回复
4249浏览
容器
微服务
捕获了一只发生概率小于万分之一的Bug
前言在开始这篇文章之前想先说一句:如果一套系统暂时没问题,那只是因为它的并发量不够而已。上周在查看系统日志时,发现了一条与众不同的日志。日志中有一半内容是正常的报文数据,而另一半内容是0x00这样的空数据。虽然系统没抛出任何异常,但这些日志肯定是反常的。多年的经验告诉我,这其中一定有什么不对的地方,加上好奇心的驱使,终于揭开了一个隐藏非常深的Bug。有时候找到Bug,解决Bug很容易,难的是如何发现Bug,并...
梦叶草789
0回复
3474浏览
容器
微服务
分布式任务调度XXL-Job,贼好用,体验一把
背景为了能够更加灵活的控制定时任务,最近在项目中开始推行定时任务调度系统,跟不少大厂朋友交流之后,发现XXLJob市场还是挺广的,功能强大,定为首选。再加上XXLJob是基于SpringBoot的开源项目,二次开发非常容易,所以就选定了XXLJob。这篇文章就带大家领略一下XXLJob的魅力,可以不用,但不可不知道。XXLJob简介访问官方网站会看到XXLJob各类特性介绍,这里总结一下就是:学习简单、轻量级、易扩展、动态生效、调度中心HA...
梦叶草789
0回复
9752浏览
开发语言
分布式数据库
Maven的几个黑科技命令,你知道吗
背景最近在基于Maven构建自动化发布流水线,发现当项目多、项目之间依赖多时,了解Maven的命令使用,真是如虎添翼。特为大家整理了一套Maven常见命令及使用小技巧。建议收藏,甚至打印出来放在办公桌以备快速使用。废话不多说,直接上干货。Maven常见命令使用项目目录结构:P(父工程pom)A(子工程common)B(子工程biz依赖common)C(子工程Web依赖B、间接依赖A)创建类命令创建普通Maven项目mvnarchetype:createDgroupIdpack...
梦叶草789
0回复
8861浏览
开发语言
分布式数据库
雪花算法:分布式唯一ID生成利器
前言无论是在分布式系统中的ID生成,还是在业务系统中请求流水号这一类唯一编号的生成,都是软件开发人员经常会面临的一场景。而雪花算法便是这些场景的一个解决方案。以分布式ID为例,它的生成往往会在唯一性、递增性、高可用性、高性能等方面都有所要求。并且在业务处理时,还要防止爬虫根据ID的自增进行数据爬取。而雪花算法,在这些方面表现得都不错。常见分布式ID生成市面上比较常见的分布式ID生成算法及类库:UUID:Java...
梦叶草789
0回复
9009浏览
开发语言
微服务
HttpClient使用不当,服务挂了!是时候系统学习一下了
背景最近发生了两件事,觉得有必要系统的学习一下Apache的HttpClient了。事件一:联调微信支付接口,用到HttpClient,花时间整理了一番。如果有一篇文章,读一读就可以掌握HttpClient80%的内容,再有可以直接用的Demo,下次再遇到是不是就可以非常容易集成了?这篇便是这篇文章的目标之一。事件二:上家公司同事发消息求助,说系统JVM溢出,找不到原因不了。查看了发来的日志文件,基本定位是HttpClient调用三方接口时内存溢出...
梦叶草789
0回复
8340浏览
开发语言
微服务
亲身经历,大龄程序员找工作,为什么这么难!
背景临近年底,公司还在招人,可筛选的人才真是越来越少,这可能是因为大家都在等年终奖吧。于是在简历筛选时,将学历和年龄都适当的放松了。正因为如此,面试了不少大龄的程序员。网络上一直有讨论大龄程序员找工作困境的话题,对于我个人来说,是将信将疑的,但作为程序员对自己职业生涯和未来的危机感还是有的。同时,作为技术部门领导,我是不介意年龄比我大,能力比我强的人加入的,只要能把事做好,这都不是事。随着互联...
梦叶草789
0回复
5870浏览
开发语言
容器
大厂都在用EhCache,它到底比Redis强在哪里?
故事背景随着硬件价格的走低,大家对硬件的依赖越来越高。甚至听说,代码不重要,不行就加机器呗。比如缓存的使用,通常有基于虚拟机内存、基于磁盘存储、基于中间件(Redis内存)等方式,我们都知道,最适合的才是最好的,但实践中,往往是动不动就直接上Redis。那么,Redis一定是最好的选择吗?单不说对内存的要求,从效率和性能上来说,也未必是最优的。所以,不同的场景使用不同的缓存策略才是高手应该追求的。这篇文章就带...
梦叶草789
0回复
5671浏览
开发语言
微服务
一个HTTPS转HTTP的Bug,他们竟然忍了2年?我无法接受,加班改了!
今天这篇文章给大家讲一个追查Bug的故事和过程。个人一直认为:事出反常必有妖,程序中的Bug也是如此。希望通过这个Bug的排查故事,大家不仅能够学到一系列的知识点,同时也能学会如何解决问题,如何更加专业的做事。而解决问题的方式及思维比单纯的技术更加重要。Let'sgo!故事的起因刚接手新团队新项目没多久,在发布一个系统时,同事友善的提醒:发布xx系统时,在测试环境要注释掉一行代码,上线发布时再放开注释。听此友善...
梦叶草789
0回复
5016浏览
开发语言
分布式数据库
Log4j一波未平,Logback 一波又起!再爆漏洞!!
背景前些天Log4j的漏洞,不知多少程序被抓去加班,关键漏洞还是接连出现的,真是辛苦了程序员,也辛苦了Log4j的开源作者。为此,二师兄还专门写了一篇还原漏洞的文章【原文点这里】。竟然有朋友在评论区说”就这么一个小漏洞,值得这么大肆的写吗?“。看来那位朋友还没意识到漏洞的严重性。本来以为使用的是Logback能够躲过一劫,没想到,又看到朋友圈在讨论Logback的爆出的新漏洞,吓得赶紧看了一下项目中的版本。漏洞详情为...
梦叶草789
0回复
4797浏览
开发语言
容器
Log4j史诗级漏洞,我们这些小公司能做些什么?
事件背景12月10日,看到朋友圈中已经有人在通宵修改、上线系统了。随即,又看到阿里云安全、腾讯安全部门发出的官方报告:”ApacheLog4j2存在远程代码执行漏洞“,且漏洞已对外公开。看到相关消息,马上爬起来把所有项目的日志系统过滤一遍,还好老项目采用的log4j,新项目采用的logback,没有中招。随后就看到朋友圈铺天盖地的相关消息。作为一个史诗级的事件,紧急修改漏洞是必然的。作为程序员,如果看到这则消息,连去核查...
梦叶草789
0回复
4763浏览
开发语言
微服务
数据库时间慢了14个小时,Mybatis说,这个锅我不背!
同事反馈一个问题:Mybatis插入数据库的时间是昨天的,是不是因为生成Mybatis逆向工程生成的代码有问题?大家都知道,对于这类Bug本人是很感兴趣的。直觉告诉我,应该不是Mybatis的Bug,很可能是时区的问题。很好,今天又可以带大家一起来排查Bug了,看看从这次的Bug排查中你能Get什么技能。这次研究的问题有点深奥,但结论很重要。Let'sgo!问题猜想同事反馈问题的时候,带了自己的猜想:是不是数据库字段设置为datetime导致?...
梦叶草789
0回复
4536浏览
容器
开发语言
Mybatis的where标签,竟然还有这么多不知道的!
背景在上篇文章,我们系统地学习了where11相关的知识点,大家可以回看《不要再用where11了!有更好的写法!》这篇文章。文章中涉及到了Mybatis的替代方案,有好学的朋友在评论区有朋友问了基于Mybatis写法的问题。于是,就有了这篇文章。本篇文章会将Mybatis中where标签的基本使用形式、小技巧以及容易踩到的坑进行总结梳理,方便大家更好地实践运用。原始的手动拼接在不使用Mybatis的where标签时,我们通常是根据查询条件进行...
梦叶草789
0回复
4434浏览
框架语言
微服务
Dao,Service,Controller,Util,Model代表着什么?为什么这么划分
为什么需要一个好的代码结构好的代码结构并不仅仅是为了看上去清晰,它更像是我们对一个系统的拆解和组装。好的代码结构可以让你在遇到代码交接这种天理不容的情况时,减少提刀砍人的可能性。好的代码结构可以让多人协作开发更容易,而不会缠缠绵绵到天涯,再相爱相杀。我们经常形容一个坏的代码结构,像屎一样我们称它为一坨,说真的,接手烂代码之后,真的找不到比屎更能描述自己感受的词了。“屎”代表着混乱,一坨,各种杂...
梦叶草789
0回复
4155浏览
开发语言
微服务
并行Stream与Spring事务相遇?不是冤家不聚头~
今天这篇文章跟大家分享一个实战中的Bug及解决方案和技术延伸。事情是这样的:运营人员反馈,通过Excel导入数据时,有一部分成功了,有一部分未导入。初步猜测,是事务未生效导致的。查看代码,发现导入部分已经通过Transcational注解进行事务控制了,为什么还会出现事务不生效的问题呢?下面我们就进行具体的案例分析,Let'sgo!事务不生效的代码这里写一段简单的伪代码来演示展示一下事务不生效的代码:Transactional(rollback...
梦叶草789
0回复
3817浏览
开发语言
容器
Maven Jar包冲突?看看高手是怎么解决的
接手了一套比较有年代感的系统,计划把重构及遇到的问题写成系列文章,老树发新枝,重温一些实战技术,分享给大家。【重构02篇】:Maven项目Jar包管理机制、冲突解决。知识背景Jar包冲突在软件开发过程中是不可避免的,因此,如何快速定位冲突源,理解冲突导致的过程及底层原理,是每个程序员的必修课。也是提升工作效率、应对面试、在团队中脱颖而出的机会。实践中能够直观感受到的Jar包冲突表现往往有这几种:●程序抛出java....
梦叶草789
0回复
1.0w浏览
开发语言
容器
90%的人(包括我)都以为会用ThreadPoolExecutor了
看了接下来的10张图再说吧!在阿里巴巴手册中有一条建议:【强制】线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。如果经常基于Executors提供的工厂方法创建线程池,很容易忽略线程池内部的实现。特别是拒绝策略,因使用Executors创建线程池时不会传入这个参数,直接采用默认值,所以常常被忽略。下面我们就来了解一下线程池相关...
梦叶草789
0回复
8084浏览
开发语言
微服务
从Jar包冲突搞到类加载机制,就是这么霸气
接手了一套比较有年代感的系统,计划把重构及遇到的问题写成系列文章,老树发新枝,重温一些实战技术,分享给大家。【重构01篇】,给大家讲讲Jar包冲突及原理。背景目前市面上项目管理要么是基于Maven,要么是基于Gradle,最近接手了一套纯手动添加jar包的项目。对于纯手动添加jar包的项目已经是多年前的方式了,现在工作三五年的技术人员可能都没有经历过。就是把项目中所需的jar包挨个找出来,添加到一个lib目录中,在IDE中再...
梦叶草789
0回复
6772浏览
开发语言
容器
99%的人没弄懂volatile的设计原理,更别说灵活运用了
写volatile的文章非常多,本人也看过许多相关文章,但始终感觉有哪里不太明白,但又说不上来说为什么。可能是过于追求底层实现原理,老想问一个为什么吧。而写这篇文章的目的很简单,就是突然之间明白了volatile为什么要这样设计了。好东西当然要拿出来分享了,于是就有了这篇文章。我们就从硬件到软件,再到具体的案例来聊聊volatile的底层原理,文章比较长,可收藏之后阅读。CPU缓存的出现最初的CPU是没有缓存区的,CPU直接读...
梦叶草789
0回复
6260浏览
开发语言
容器
08篇 要给Nacos的UDP通信功能点个赞
学习不用那么功利,二师兄带你从更高维度轻松阅读源码~Nacos在服务注册功能中使用到了UDP的通信方式,主要功能就是用来辅助服务实例变化时对客户端进行通知。然而,对于大多数使用Nacos的程序员来说,可能还不知道这个功能,更别说灵活运用了。看完整个源码的实现,还是要为这一功能点个赞的,可以说非常巧妙和实用。但在实现上有一些不足,文末会进行指出。本篇文章就带大家从源码层面来分析一下Nacos2.0中是如何基于UDP协议...
梦叶草789
0回复
5574浏览
容器
开发语言
暂无内容
1
6
7
8
9
10
11
12
13
14
67
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅