草庐IT

Spring Cloud 微服务优雅下线 + 灰度发布的正确姿势,写得太好了!

前言在生产环境中,如何保证在服务升级的时候,不影响用户的体验,这个是一个非常重要的问题。如果在我们升级服务的时候,会造成一段时间内的服务不可用,这就是不够优雅的。那什么是优雅的呢?主要就是指在服务升级的时候,不中断整个服务,让用户无感知,进而不会影响用户的体验,这就是优雅的。实际上,优雅下线是目标,而不是手段,它是一个相对的概念,例如killPID和kill-9PID都是暴力杀死服务,相对于kill-9PID来说,killPID就是优雅的。但如果单独拿killPID出来说,我们能说它是优雅的下线策略吗?肯定不是啊,就是这个道理。因此,本文讲述的优雅下线仅能称之为“相对的优雅下线”,但相对于暴力

hibernate validate工具,小心你的姿势不对

系统运营后台有个导入线下交易的功能。产品和运营反馈,当excel数据量超过8千条时,会变得超级慢,动辄要等三四十秒。哎!这么慢,搁谁能不闹心呢?基于此,这两天,我觉得优化一下,可是,一来二去,从昨天周一到现在眼看两天了,对代码进行各种排查和调整,还是没有达到理想的效果————至少,别让用户傻傻等待超过5秒吧,最次也不能超过10秒吧。这两天特殊时期,公司的保洁阿姨应该也阳了,始终没来上班。那么,卫生工作就得我们上班族自理了。  我四下张望一下,两个垃圾桶都满了。再看小伙伴们都在安静的码代码。我就收拾一下吧。在提着垃圾袋扔垃圾的路上,突然灵光乍现。是不是数据校验那块导致的呢?————校验用的是Hi

hibernate validate工具,小心你的姿势不对

系统运营后台有个导入线下交易的功能。产品和运营反馈,当excel数据量超过8千条时,会变得超级慢,动辄要等三四十秒。哎!这么慢,搁谁能不闹心呢?基于此,这两天,我觉得优化一下,可是,一来二去,从昨天周一到现在眼看两天了,对代码进行各种排查和调整,还是没有达到理想的效果————至少,别让用户傻傻等待超过5秒吧,最次也不能超过10秒吧。这两天特殊时期,公司的保洁阿姨应该也阳了,始终没来上班。那么,卫生工作就得我们上班族自理了。  我四下张望一下,两个垃圾桶都满了。再看小伙伴们都在安静的码代码。我就收拾一下吧。在提着垃圾袋扔垃圾的路上,突然灵光乍现。是不是数据校验那块导致的呢?————校验用的是Hi

扒一扒Bean注入到Spring的那些姿势,你会几种?

大家好,我是三友~~这篇文章我准备来扒一扒Bean注入到Spring的那些姿势。其实关于Bean注入Spring容器的方式网上也有很多相关文章,但是很多文章可能会存在以下常见的问题注入方式总结的不全没有分析可以使用这些注入方式背后的原因没有这些注入方式在源码中的应用示例...所以本文就带着解决上述的问题的目的来重新梳理一下Bean注入到Spring的那些姿势。配置文件配置文件的方式就是以外部化的配置方式来声明SpringBean,在Spring容器启动时指定配置文件。配置文件方式现在用的不多了,但是为了文章的完整性和连续性,这里我还是列出来了,知道的小伙伴可以自行跳过这节。配置文件的类型Spr

扒一扒Bean注入到Spring的那些姿势,你会几种?

大家好,我是三友~~这篇文章我准备来扒一扒Bean注入到Spring的那些姿势。其实关于Bean注入Spring容器的方式网上也有很多相关文章,但是很多文章可能会存在以下常见的问题注入方式总结的不全没有分析可以使用这些注入方式背后的原因没有这些注入方式在源码中的应用示例...所以本文就带着解决上述的问题的目的来重新梳理一下Bean注入到Spring的那些姿势。配置文件配置文件的方式就是以外部化的配置方式来声明SpringBean,在Spring容器启动时指定配置文件。配置文件方式现在用的不多了,但是为了文章的完整性和连续性,这里我还是列出来了,知道的小伙伴可以自行跳过这节。配置文件的类型Spr

【分享】免梯子的GPT,玩 ChatGPT 的正确姿势

        火了一周的ChatGPT,HG不允许还有小伙伴不知道这个东西是什么?简单来说就是,你可以让它扮演任何事物,据说已经有人用它开始了颜色文学创作。因为它太火了,所以,本周特推在几十个带有“chatgpt”的项目中选取了两个有代表性的项目,希望你能玩好这个新玩具。​        使用了gpt后,感觉前后端都要被替代了,太强了。由于本人之前很想体验gtp,但是一直难搞vpn,最近发现了一个GPT免梯子的,是我最近发现的最好用,最快的,且不要梯子的,用起来爽,界面也挺好看的,大家快玩儿玩儿。试了一下写代码,写文案……真棒。特别最近在刷题准备面试,成为了有力的帮手,有些问题可以直接问答案

【分享】免梯子的GPT,玩 ChatGPT 的正确姿势

        火了一周的ChatGPT,HG不允许还有小伙伴不知道这个东西是什么?简单来说就是,你可以让它扮演任何事物,据说已经有人用它开始了颜色文学创作。因为它太火了,所以,本周特推在几十个带有“chatgpt”的项目中选取了两个有代表性的项目,希望你能玩好这个新玩具。​        使用了gpt后,感觉前后端都要被替代了,太强了。由于本人之前很想体验gtp,但是一直难搞vpn,最近发现了一个GPT免梯子的,是我最近发现的最好用,最快的,且不要梯子的,用起来爽,界面也挺好看的,大家快玩儿玩儿。试了一下写代码,写文案……真棒。特别最近在刷题准备面试,成为了有力的帮手,有些问题可以直接问答案

SourceGenerator 使用姿势(1):生成代理类,实现简单的AOP

SourceGenerator已经出来很久了,也一直在关注。之前观摩大佬 xljiulang 的 WebApiClient 使用SourceGenerator生成接口代理类,深受启发,准备拿过来用看看(发出白嫖的声音),写个编译期静态代理AOP。本篇重点是怎么获取元数据,得到想要的数据,生成想要的代码(往下拖到第4点)。几个月前写了个demo,现在趁着有空重新整理完善了下。.net6新增了个 IIncrementalGenerator进行增量编译,这个还没研究,后面再说。我的思路是继承,生成一个类去继承需要拦截的实际类,然后重写相关的方法,此时插入额外的方法,比如Before,After等。这

SourceGenerator 使用姿势(1):生成代理类,实现简单的AOP

SourceGenerator已经出来很久了,也一直在关注。之前观摩大佬 xljiulang 的 WebApiClient 使用SourceGenerator生成接口代理类,深受启发,准备拿过来用看看(发出白嫖的声音),写个编译期静态代理AOP。本篇重点是怎么获取元数据,得到想要的数据,生成想要的代码(往下拖到第4点)。几个月前写了个demo,现在趁着有空重新整理完善了下。.net6新增了个 IIncrementalGenerator进行增量编译,这个还没研究,后面再说。我的思路是继承,生成一个类去继承需要拦截的实际类,然后重写相关的方法,此时插入额外的方法,比如Before,After等。这

红蓝对抗经验分享:CS免杀姿势

前言红队在HVV中一般使用钓鱼实现突破边界,蓝队通过钓鱼实现溯源反制,但是都离不开一个好的免杀马,这里分享一下自己的免杀过程,过火绒、360杀毒、windowsdefender以及赛门铁克等主流杀软都没问题。杀软工作原理杀软的查杀方式有多种,比如特征识别,是基于各个厂商收集的病毒样本,依据病毒样本提取的病毒特征,所以杀软的能力在一定程度上也取决于病毒库的大小,这种基于特征识别一般是基于静态。启发式的工作原理基本上可以定义为动态查杀或者是机器学习方法的一种查杀手段,会依据可能执行程序或者关注应用系统重要区域行为而做出的查杀行为。免杀手段修改特征码,可以根据污点检测的方式定位到触发杀软规则的病毒样