自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 推荐一款颜值逆天且功能齐全的开源Shell工具

前言以前在windows上一直使用的SSH工具是XShell,后来转到mac平台,XShell没有mac版本。所以之前一直在找一款颜值高,功能齐全的可以作为日常使用的Shell工具。我知道mac下也有不少优秀的Shell终端工具,比如SecureCRT,putty,Termius,FinalShell等。我是从以下几个维度考虑的:颜值要高,毕竟天天面对本就枯燥乏味的shell命令行,界面不好看会影响心情。心情也是生产力要素中很重要的一个因素,不知道你们认同么。功能要全,什么文件上传,云端同步,主题

2021-11-23 14:34:36 11648 4

原创 LiteFlow 2.6.4版本发行注记,里程碑版本

一这个版本做的很折腾。期间几个issue推翻重做了好几次。但我最终还是带来了LiteFlow 2.6.4这个重要版本。虽然版本是小版本号升级,但是带来的更新可一点也不少。并完全向下兼容。如果你是第一次知道LiteFlow这款框架,可以移步以下链接进行了解:官网:https://yomahub.com/liteflowGitee仓库主页:https://gitee.com/dromara/liteFlowGithub仓库主页:https://github.com/dromara/liteflo

2021-11-12 13:18:48 602

原创 一款吊炸天的AI图片增强工具

背景如果你工作中需要制作文档,PPT,或者给文章配图,或者需要制作视频。一定会有在网上寻找图片素材的经历。但网上的图质量参差不一,有时候找到了喜欢的图,但是质量不行,分辨率太低。有的人就忍了,但我不能忍,一张低分辨率模糊的图片放在成品上,我觉得还不如不放,会拉低整个作品的质量。那怎么办呢,重新找高分辨的图片么?我这篇就来推荐下我日常中使用的一个神器。一款依据AI算法能把低分辨补成超高分辨率的软件。即便是模糊到不行的图片,在这款神器的加持下也立马脱胎换骨!软件如何获取请看文末。一不绕弯子,立

2021-11-10 11:15:19 1304

原创 装了这几个IDEA插件,基本上一站式开发了

前言前几天有社区小伙伴私聊我,问我都用哪些IDEA插件,我的IDEA的主题看起来不错。作为一个开源作者,每周要code大量的代码,提升日常工作效率是我一直追求的,在众多的IDEA插件中,我独钟爱这几款。这期就整理一些我日常中经常使用的IDEA插件,这些插件有些挺小众,但是的确非常提升效率,推荐给大家。Vuesion Theme首先推荐是一款皮肤,每天对着看IDEA,默认的皮肤黑白两色,我个人总觉得白色太刺眼,黑色的有点太黑了,代码高亮也不好看,长时间难免看着有点审美疲劳。颜值是生产力的第一要素,主

2021-11-08 10:50:03 661

原创 TLog 1.3.4发行注记

一TLog 1.3.4版本正式发布!相关文档也已做了更新。TLog是一款日志工具,十分钟即可接入,支持众多的框架和主流RPC,你几乎不需要做什么,TLog能自动你的日志进行增强,让你的日志马上升级,微服务之间的日志变得可追溯!gitee托管仓库:https://gitee.com/dromara/TLoggithub托管仓库:https://github.com/dromara/TLog项目主页:https://yomahub.com/tlog/二从1.3.0到1.3.4,TLog主

2021-11-03 15:30:00 205

原创 我的笔记本电脑瞬间扩大一个T的容量

前言不知道有多少人在家里搭建中央存储设备的,也就是NAS。这个东西在我日常生活中,存储了大量的个人资料,家人们的照片,技术的资料,还有各种高清影视剧。搭配公网的IP,可以真正做到,任何时候任何地点的读取资料的需求。我之前玩NAS写过一篇基础性的介绍文章,包括公网的申请和端口映射,有兴趣的小伙伴可以读下:https://mp.weixin.qq.com/s/MwaZeDQZfk0tRt1D4iE-5g然而使用NAS一段时间后,虽然可以随时随地的对文件进行读取和保存。但是我发现还是有很多不方便的地方。

2021-11-02 11:42:47 1384 1

原创 一个理科直男如何看《鱿鱼游戏》

前言我一向不怎么喜欢看棒子片。但是十一期间却疯狂的追着一部剧:《鱿鱼游戏》。这片子在全网实在是太火了,火到全球播放量1.11亿次,成为奈飞收视率最高的全球非英语原创剧。鱿鱼游戏具有很强的现实社会的隐喻,加上各种有意思的游戏机制和刺激人心脏的画面,成功吸引了很多人的追捧。甚至包括剧中的各种道具。。比如我看完竟然去某宝买了同款椪糖:除了盒子和针还有一丝还原度以外,这糖饼的质量真不咋地。厚的来简直拿针没法戳。我试了下,然后变成了这样。。。不光是很难拨出来,味道也完全不行。一个平均卖十几块,可想而

2021-10-18 14:36:27 1703

原创 Zookeeper的选举机制和同步机制超详细讲解,面试经常问到!

前言zookeeper相信大家都不陌生,很多分布式中间件都利用zk来提供分布式一致性协调的特性。dubbo官方推荐使用zk作为注册中心,zk也是hadoop和Hbase的重要组件。其他知名的开源中间件中也都出现了zk的身影。有很多童鞋认识zk很久了,知道其基本理念,知道如何使用。但当面试时问到集群zk之间的选举和数据同步机制时,就陷入了盲区。其实很多的分布式中间件的选举和同步,都和zk有异曲同工之妙。这篇文章我就来重点聊下关于zk集群之间的选举和同步机制。ZK集群的部署首先我们来看下半数运行机制:

2021-10-08 16:44:30 491 2

原创 这个开源组织里的项目都是精品

前言在开源中国里,不知道大家有没有留意到一个Java开源组织——Dromara?这个组织是由Apache ShenYu(前身是Soul网关)的作者创立,多位Java开源作者参与的一个Java开源组织。在开源中国社区,很多Java开源作者都是各自为战,独立运营项目。Domara组织的诞生就是为了联合Java开源的力量,共建社区,资源共享,共同推行中国Java开源事业的发展。目前Dromara社区拥有9个GVP项目,和一些Star数量很高的项目。这些开源项目社区都很活跃,每一个都是能提高工作效率的精品

2021-09-30 15:56:40 244

原创 动态代理大揭秘,带你彻底弄清楚动态代理!

前言代理模式是一种设计模式,能够使得在不修改源目标的前提下,额外扩展源目标的功能。即通过访问源目标的代理类,再由代理类去访问源目标。这样一来,要扩展功能,就无需修改源目标的代码了。只需要在代理类上增加就可以了。其实代理模式的核心思想就是这么简单,在java中,代理又分静态代理和动态代理2种,其中动态代理根据不同实现又区分基于接口的的动态代理和基于子类的动态代理。其中静态代理由于比较简单,面试中也没啥问的,在代理模式一块,问的最多就是动态代理,而且动态代理也是spring aop的核心思想,sprin

2021-09-14 12:53:06 186

原创 缓存热点,缓存穿透,终极解决方案看过来

背景前不久,因为公司业务需要,需要解决在大促场景下后端业务的热点缓存问题,所以研究了下缓存热点解决方案。很多公司的缓存都是基于redis来做的,redis的性能其实已经足以能应付大部分的场景,但是对于大促期间或者活动抢购期间的某个爆品,可能会出现在几秒时间内流入大量的流量,由于某个爆品的数据在redis cluster场景下会按照hash规则被存放在某个redis分片上,那么这几秒的流量都会压到这个redis分片,从而在瞬间会导致这个redis分片的瘫痪,也会影响后续的redis请求的阻塞。还有个场景

2021-09-03 10:02:53 124

原创 开源框架TLog核心原理架构解析

前言最近在做TLog 1.2.5版本的迭代,许多小伙伴之前也表示说很想参与开源项目的贡献。为了让项目更好更快速的迭代新特性以及本着发扬开源精神互相学习交流,很有幸招募到了很多小伙伴与我一起前行。为了方便大家理解TLog项目的核心原理和架构,便有了此篇内容。此篇内容偏向TLog技术设计和核心原理,同时也涵盖着做一个开源框架所需要考虑的问题和技术要点。我一直相信,好的技术内容应提领关键点,引导大家该去如何读懂源码。而不是全篇的贴代码。所以此篇也不是源码解析,而是提炼关键点,让大家如何的更好去理解。因为阅

2021-03-29 12:38:52 4041 1

原创 为开源作者赋能,为此我花了一个月时间做了个工具平台

前言在介绍这个项目之前,先听我BB几句。自己做开源也有2,3年了。现在也长期维护着3个开源项目,起初只是一时兴趣,觉得做出一个东西放在开源站点上是一件很有意义的事。但是凡是用的人多了,自然会有各种各样的问题和bug,各种issue要解决。自己的项目也如同自己的孩子一般,也不能放任不管,很多时候想放弃也不舍得。熬了两年,发现开源事业绝不能只凭着一腔热血,或者说光有一腔热血还不够,更需要是一些使命感和毅力去推动。这期间需要你花费大量的时间去解答群友的问题,迭代项目和经营。其实也不图什么,就图那点成就感。很

2021-03-11 11:52:51 182

原创 别再用硬编码写业务流程了,试试这款轻量级流程编排框架

前言在每个公司的系统中,总有一些拥有复杂业务逻辑的系统,这些系统承载着核心业务逻辑,几乎每个需求都和这些核心业务有关,这些核心业务业务逻辑冗长,涉及内部逻辑运算,缓存操作,持久化操作,外部资源调取,内部其他系统RPC调用等等。时间一长,项目几经易手,维护的成本得就会越来越高。各种硬代码判断,分支条件越来越多。代码的抽象,复用率也越来越低,各个模块之间的耦合度很高。一小段逻辑的变动,会影响到其他模块,需要进行完整回归测试来验证。如要灵活改变业务流程的顺序,则要进行代码大改动进行抽象,重新写方法。实时热变更业

2021-01-07 13:25:59 1584

原创 没花一分钱的我竟然收到的JetBrains IDEA官方免费赠送一年的Licence

前言做java的人,一般IDE工具用的不是eclipse就是IntelliJ IDEA了吧,eclipse因为是开源软件,而且起步比较早,功能也比较完善。早期基本上做java的使用eclipse都是必备技能。我工作十年多,直到2年前还在用eclipse,随着IntelliJ IDEA的市场份额原来越大,很多人都转投这个更现代化,更懂开发者的IDE工具中。我也在两年前从eclipse阵营转投IntelliJ IDEA的阵营了,同时把windows电脑也换成了mac。本身IntelliJ看起来就更现代化,在

2020-10-23 10:58:47 8503 3

原创 我没有前端经验,但1天就搞定了开源项目主页

前言前段时间打算为自己的开源项目做一个主页,一方面有个好的门面能提升项目的关注度,一方面也能对项目所涉及的资源做一个整合。其实原先项目已经有一个文档主页,比较简洁,大致长这样:其实看起来也还可以是不?这是用docsify做的,docsify是一款优秀的文档生成工具,使用起来比较简单,只需要写内容的markdown文件就可以了,支持markdown的大部分语法,并且自己也扩展了部分语法显示效果。但是我觉得docsify虽然建文档还不错,但用来建项目主页就有点寒酸了。首先它的定位就是文档工具,其次

2020-10-14 10:26:45 356

原创 轻量级的分布式日志追踪利器,十分钟即可接入,从此日志追踪无难事

前言随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候。因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。这时候很多童鞋会开始考虑上SkyWalking,Pinpoint等分布式追踪系统来解决,基于OpenTracing规范,而且通常都是无侵入性的,并且有相对友好的管理界面来进行链路Span的查询。但是搭建分布式追踪系统,熟悉以及推广到全公司的系统需要一定的时间周期,而且当中涉及到链路span节点的存储成本问题,全量采集还是部分采

2020-09-17 13:06:21 829

原创 代码级别的上传下载神器

前言不知道大家在工作中有没有碰到过在代码级别中进行上传和下载呢,一般的场景为调用第三方的接口进行上传大文件和下载大文件。我一个小伙伴最近在工作中就碰到了,他需要在代码中调用第三方http接口进行原始文件的上传,然后需要调用第三方接口把第三方服务处理好的数据文件下载到本地。他说其实没什么技术难度,百度了下,代码示例也很多,httpclient就支持上传文件和下载,就是代码写的太多了,不怎么优雅。他给我看了httpclient的上传代码:String uploadUrl = "http://x

2020-09-08 14:13:02 143 1

原创 访问github太慢?我写了一个开源小工具一键变快

前言GitHub应该是广大开发者最常去的站点,这里面有大量的优秀项目,是广大开发者寻找资源,交友学习的好地方。尤其是前段时间GitHub公布了一项代码存档计划——Arctic Code Vault,要把代码埋入地下250米深的永久冻土层,可以将代码保存一千年。此外,GitHub 还为开发者在配置文件中设计了纪念徽章。想想自己的代码可以作为人类的技术瑰宝被保存一千年,是不是有点自豪呢。好了,言归正传。虽然GitHub没有被墙,但是由于CDN服务器都在国外,所以国内访问GitHub的速度实在是慢的一匹.

2020-08-24 10:50:40 798

原创 从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的

背景最近有个学弟找到我,跟我描述了以下场景:他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以。但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出。他知道是因为数据全部加载到jvm内存导致的堆溢出。所以只能对时间窗口做了限制。以避免因导出过数据过大而引起的堆溢出。最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月。虽然问题解决了,但是运营小姐姐不开心了,跑过来和学弟说,我要导出一年的数据,难道要我导出12次再手工合并起来吗。学

2020-08-11 10:37:15 1015 1

原创 用好这几个技巧,解决Maven Jar包冲突易如反掌

前言大家在项目中肯定有碰到过Maven的Jar包冲突问题,经常出现的场景为:本地运行报NoSuchMethodError,ClassNotFoundException。明明在依赖里有这个Jar包啊。怎么运行不了!?项目中明明定义着某个jar包版本为2.0.2,怎么打包之后变成2.5.0了!?A项目引xxx.jar包运行好好的,B项目同样引入xxx.jar后,运行报错了。。是B项目有问题,还是xxx.jar包有问题!?本地环境和测试环境运行的好好的,到了生产就报一堆NoSuchMethodError

2020-07-31 10:57:47 852

原创 一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式

前言本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台。本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念也会精炼出提及下。系列主要分为以下几块Prometheus各个概念介绍和搭建,如何抓取数据如何推送数据至Prometheus,推送和拉取分别用于什么样的场景(本次分享内容)Prometheus数据的结构以及查询语言PromQL的使用Java应用如何和Prometheus集成,如何启用服务发现,如果自定

2020-07-28 12:02:59 1701 2

原创 一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起

上帝之火本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼。每次我都能联想到带来上帝之火的希腊之神,普罗米修斯。而这个开源的logo也是火,个人挺喜欢这个logo的设计。本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台。本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念也会精炼出提及下。系列主要分为以下几块Prometheus各个概念介绍和搭建,如何抓取数据(本次分享内容)如何推送

2020-07-22 13:06:39 1363

原创 一款直击痛点的优秀http框架,让我超高效率完成了和第三方接口的对接

1.背景因为业务关系,要和许多不同第三方公司进行对接。这些服务商都提供基于http的api。但是每家公司提供api具体细节差别很大。有的基于RESTFUL规范,有的基于传统的http规范;有的需要在header里放置签名,有的需要SSL的双向认证,有的只需要SSL的单向认证;有的以JSON 方式进行序列化,有的以XML方式进行序列化。类似于这样细节的差别太多了。不同的公司API规范不一样,这很正常。但是对于我来说,我如果想要代码变得优雅。我就必须解决一个痛点:不同服务商API那么多的差异点,如何才能维

2020-07-17 12:11:05 477 1

原创 如果你还不知道如何控制springboot中bean的加载顺序,那你一定要看此篇

1.为什么需要控制加载顺序springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题。在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功能。在一般业务场景,可能你不大关心一个bean是如何被注册进spring容器的。只需要把需要注册进容器的bean声明为@Component即可,spring会自动扫描到这个Bean完成初始化并加载到spring上下文容器。而当你在项目启动时需要提前做一个业务的初始化工作时,或者你正在开发某个中间件需要完成自

2020-07-13 16:21:13 3113

原创 Springboot启动扩展点超详细总结,再也不怕面试官问了

1.背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。我非常喜欢这种自动装配的机制,所以在自己开发中间件和公共依赖工具的时候也会用到这个特性。让使用者以最小的代价接入。想要把自动装配玩的转,就必须要了解spring对于bean的构造生命周期以及各个扩展接口。当然了解了bean的各个生命周

2020-06-28 10:58:56 1223

转载 应该是全网最全的JVM知识点总结

1:什么是JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽...

2020-05-14 13:20:21 214

原创 一次JVM内存问题导致的线上事故

背景公司线上有个tomcat服务,里面合并部署了大概8个微服务,之所以没有像其他微服务那样单独部署,其目的是为了节约服务器资源,况且这8个服务是属于边缘服务,并发不高,就算宕机也不会影响核心业务。因为并发不高,所以线上一共部署了2个tomcat进行负载均衡。这个tomcat刚上生产线,运行挺平稳。大概过了大概1天后,运维同事反映2个tomcat节点均挂了。无法接受新的请求了。CPU飙升到100%。排查过程一接手这个问题后。首先大致看了下当时的JVM监控。CPU的确居高不下FULL GC从

2020-05-14 10:58:48 286 2

原创 可能这是Redis可视化工具最全的横向评测

1 命令行不知道大家在日常操作redis时用什么可视化工具呢?以前总觉得没有什么太好的可视化工具,于是问了一个业内朋友。对方回:你还用可视化工具?直接命令行呀,redis提供了这么多命令,操作起来行云流水。用可视化工具觉得很low。命令行的鄙视用工具的,用高端工具的鄙视低端工具的,鄙视链一直存在。虽然用命令行自己也可以,但是总感觉效率上不如用工具,在视觉上不那么直观。尤其是看json的时候,...

2020-04-13 16:11:03 3100 1

原创 Redis中Scan命令踩坑记

1原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作。但是最近在使用redis的scan的命令式却踩了一个坑,顿时发觉自己原来对redis的游标理解的很有限。所以记录下这个踩坑的过程,背景如下:公司因为redis服务器内存吃紧,需要删除一些无用的没有设置过期时间的key。大概有500多w的key。虽然key的数目听起来挺吓人。但是自己玩redis也有年头了,这种事还...

2020-04-08 11:00:09 3184 2

原创 一款给日志打标签实现精确定位的日志切面利器

1不知道各位在生产日志中定位问题时有没有碰到这样的场景:由于coding的时候日志输出的比较少,出现问题时,很难通过日志去定位到问题。又或者是,你明明coding的时候有输出日志。但是在庞大的日志文件中,由于业务线程并发比较多,你输出的日志又没有加关键信息。你也很难定位到你所需要的日志信息。之前在公司里写业务代码时,为了使每个RPC调用能被日志记录下来,我们在公司基础组件里定义了一个切面,拦截...

2020-04-03 14:45:36 494

原创 如何发布自己的项目到中央仓库

1以前在github发开源项目,都因为懒,从来不构建到中央仓库。最近因为其他人要用,联系我。希望可以发到中央仓库。我想,不就是mvn deploy嘛,开搞。一圈弄下来,发现真没那么简单。当中遇到了无数的坑,让我每一次都心里默默念到,发个项目,为何如此痛苦。现将痛苦的过程详细记录下来。希望可以帮助到其他小伙伴少踩点坑。首先,你需要到sonatype这个站点上去注册一个账号。这个页面长这个样子...

2020-03-27 19:33:53 347

原创 Redis如何存储和计算一亿用户的活跃度

1前段时间,在网上看到一道面试题:如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量。觉得很有意思,就仔细想了下 。并做了一系列实验,自己模拟了下 。还是有点收获的,现整理下来。和大家一起分享。Redis是一个内存数据库,采用单线程和事件驱动的机制来处理网络请求。实际生产的QPS和TPS单台都能达到3,4W,读写性能非常棒。用来存储一些对核心业务弱影响...

2020-03-18 23:34:35 1048 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除