自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蛮三刀酱

微信公众号:蛮三刀酱、后端技术漫谈

  • 博客(347)
  • 收藏
  • 关注

原创 模仿UP主,用Python实现一个弹幕控制的直播间

up主通过代码实现了实时读取直播间里的弹幕内容,进而控制自己的电脑,把弹幕翻译成指令操控《赛博朋克2077》游戏。

2021-12-02 20:15:09 1481

原创 如何使用注解优雅的记录操作日志

写在开头本文讨论如何优雅的记录操作日志,并且实现了一个SpringBoot Starter(取名log-record-starter),方便的使用注解记录操作日志,并将日志数据推送到指定数据管道(消息队列等)本文灵感来源于美团技术团队的文章:如何优雅地记录操作日志?。文中使用的部分定义描述和示例来源于美团原文,请知悉。本文作为《萌新写开源》的开篇,先把项目成品介绍给大家,之后的文章会详细介绍,如何一步步将个人项目做成一个大家都能参与的开源项目(如何写SpringBoot Starter,如何上传到.

2021-11-08 10:44:59 1039 4

原创 猿创征文|如何把Java代码玩出花?JVM Sandbox工具入门教程与原理浅谈

本文花了较短的篇幅重点介绍了JVM Sandbox的功能,实际用法,以及基础原理。它通过封装一些底层JVM控制的框架,使得对JVM层面的AOP开发变的异常简单,就像作者自己所说“JVM-SANDBOX还能帮助你做很多很多,取决于你的脑洞有多大了。

2022-11-14 20:03:59 27

原创 管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程

在平常的后端项目开发中,状态机模式的使用其实没有大家想象中那么常见,笔者之前由于不在电商领域工作,很少在业务代码中用状态机来管理各种状态,一般都是手动get/set状态值。去年笔者进入了电商领域从事后端开发。电商领域,状态又多又复杂,如果仍然在业务代码中东一块西一块维护状态值,很容易陷入出了问题难于Debug,难于追责的窘境。

2022-06-01 23:14:12 893 3

原创 如何保证同事的代码不会腐烂?一文带你了解 Alibaba COLA 架构

本文开始前,问大家一个问题,你觉得一份业务代码,尤其是互联网业务代码,都有哪些特点?我能想到的有这几点:互联网业务迭代快,工期紧,导致代码结构混乱,几乎没有代码注释和文档。互联网人员变动频繁,很容易接手别人的老项目,新人根本没时间吃透代码结构,紧迫的工期又只能让屎山越堆越大。多人一起开发,每个人的编码习惯不同,工具类代码各用个的,业务命名也经常冲突,影响效率。大部分团队几乎没有时间做代码重构,任由代码腐烂。每当我们新启动一个代码仓库,都是信心满满,结构整洁。但是时间越往后,代码就变得腐败不.

2022-03-30 23:59:21 1306

原创 【年终总结】投身福报,我的2021年终总结

大家过年好啊,今年的我感觉自己一直不在状态,甚至到了年末要写年终总结了,也是一拖再拖,甚至有点不想写。但是过了2022年元旦,年终总结没写,总感觉缺了点对2021年的尊重。

2022-01-07 23:54:36 2800

原创 Git常用命令速查手册【蛮三刀酱出品】

前言在你日常的开发中,会遇到很多Git的操作,但你从来没做过,这篇文章便是一本Git命令速查手册,里面总结了我工作这几年来最最常用的Git用法。相信对日常开发来说是有帮助的。下面的常用方法和命令大部分都只涉及使用,不涉及原理讲解。如果有疑问,尽请留言~文章目录前言常规功能Git Commit 规约git忽略已经管理的文件及文件夹如何使用特定的SSH Key提交GITGit全局username和当前项目usernameGlobal Config 和 仓库Config修改已经提交的作者信息Git打tag

2021-12-16 20:37:03 211

原创 WebSocket新手入门指南

文章目录介绍 WebSocket 的原理,了解原理后,用起来更放心大胆;类似技术对比,搞清楚自己的业务场景是不是需要使用 WebSocket;使用过程中的经验分享,让你少走一些弯路;1 WebSocket 是什么WebSocket 是 HTML5 新增的在单个 TCP 连接上进行全双工通讯(不受限的双向通信)的协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。全双工(Full Duplex)的通讯传输允许数据在两个方向上同时传输,相当于两个单工通信方式的结合。发送和接收分别由两

2021-12-14 19:16:19 6426

原创 可能被你误解的 DRY 原则

规则终究是规则,思想终究是思想。实践起来困难重重

2021-12-13 22:58:34 526

原创 PlantUML——程序员画架构图都靠它

引言作图可以说是程序员的必备技能,最近发现身边同学们主要还是在用 OmniGraffle、ProcessOn、draw.io 这类软件作图,用的过程中可以思考一下下面这些问题是否困扰了你:版本管理困难、团队协作困难、二次编辑困难:假如老文档中的设计图需要修改,是你画的还好就是找源文件得费点功夫,如果不是你画的那就别想找到源文件了,别指望可以二次编辑了,重画吧;作图效率不够高:如果希望作图质量保持一定的水准,又想画得快,多数人都做不到;强迫症患者经常把时间浪费在了对齐矩形、对齐间距上。鉴于上述困

2021-12-13 22:55:18 10825

原创 Java中的范型使用 扫清盲点

概述泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型

2021-12-13 21:06:24 280

原创 手把手教你提交Jar包到Maven公共仓库

在上一篇文章中,我介绍了自己的SpringBoot Starter项目,可以让我们使用注解的方式轻松地获取操作日志,并推送到指定数据源。之前,我的项目开源在Github上,大家想要用我的项目,还得把Github仓库配置到Maven的Setting.xml里,一点也不方便。本文,就整理一下我把项目上传到公共Maven仓库的过程,当做一篇教程文章。不得不说,上传公共Maven仓库,还是颇费周折的,差点没把人气死。《萌新学开源》系列文章持续更新:《萌新写开源01》如何使用注解优雅的记录操作日志《萌新写

2021-12-13 17:00:21 1805

原创 使用AI在原神里自动钓鱼,扫描Git仓库泄露的密码 【Github热榜周刊第三期】

大家好,这里是的Github精彩项目分享周刊,我是每周都在搬砖的蛮三刀酱。我会从Github热门趋势榜里选出 高质量、有趣,牛B 的开源项目进行分享。榜单取自实时Github Trending排行榜Top50,也欢迎评论推荐作品。1. a-picture-is-worth-a-1000-words:一图胜千言项目介绍这个项目非常有意思,作者试图用涂鸦来介绍软件开发一些常用的概念和工具,这个仓库名叫a-picture-is-worth-a-1000-words,顾名思义作者力求精简在一张图把一个东

2021-10-08 16:27:54 2274 2

原创 如何在MacBook M1上无缝使用Win11和MacOS?

2020年,MacBook M1发布后,由于其夸张到离谱的性能表现,苹果又一次在知名度和销量上真正实现了双丰收。抛开M1和MacOS其他的华丽特色不谈,很多习惯了Windows系统的同学,在换了这台小巧轻便的MacBook后,依然会觉得Mac系统有各种的不方便。尤其是在需要用网银U盾,需要打开一些只兼容IE的旧网站,以及一些奇奇怪怪的小众Windows软件的时候,总会开始嫌弃手头的M1,拿回旧电脑继续折腾。当然,这些兼容性问题在MacOS上也不是没有解决办法,只要会折腾各种插件,应用,也能够搞定。不

2021-09-07 12:25:08 1643 4

原创 在网页上直接跑Win11,5秒内克隆自己的声音 | 蛮三刀酱的Github周刊第二期

大家好,这里是每周更新的Github精彩分享周刊,我是每周都在搬砖的蛮三刀酱。我会从Github热门趋势榜里选出 高质量、有趣,牛B 的开源项目进行分享。1. PowerShell:不止于Windows,支持全平台的强大Shell项目介绍没错,就是微软的那个PowerShell,可能有很多同学在Windows上用过,功能还是比较强大的。PowerShell Core 是一个跨平台(Windows、Linux 和 macOS)自动化和配置工具/框架,可以很好地与您现有的工具配合使用,并针对处理结构化

2021-08-21 13:26:38 453

原创 老外为了在MacBook上玩原神,让M1支持了所有iOS应用 | 蛮三刀酱的Github周刊第一期

大家好,这里是每周更新的Github有趣项目分享,我是每周都在吃瓜的蛮三刀酱。我会从Github热门榜里选出 高质量、有趣,牛B 的开源项目进行分享。废话不多说,看看最近有什么有意思的Github项目吧。1. PlayCover:在MacBook M1运行所有iOS软件和游戏项目介绍PlayCover项目能够让你在MacBook M1上运行IOS的游戏和应用,并且支持使用键盘,鼠标和手柄等控制器。总所周知,MacBook M1在AppStore里支持很多iOS应用下载,但是如果该应用的开发者关闭

2021-08-19 11:29:58 1683

原创 3分钟搭建一个网站?腾讯云Serverless开发体验

作为一个开发者,应该都能理解一个网站从开发到上线,要经过很多繁琐的步骤。编写代码,部署应用,部署数据库,申请域名,申请SSL证书,域名备案,到最终上线起码要几天时间。作为一个不精通代码的业务玩家,当你想搞个网站玩玩时,经常会被淘宝贵得离谱的报价吓跑。这两年Serverless的概念被炒得火热,顾名思义,“无服务”。今天的这篇文章,我想站在一个开发者的角度,带大家简单的体验下使用腾讯云Serverless来开发网站的整体流程。看看在Serverless的概念下,开发网站是不是变得更加简单了。本文的主.

2021-08-01 21:05:43 358

原创 软件开发的22条黄金法则

编程本质上是一门手艺活,既然是手艺,里面就会有很多个人技巧和经验。“破窗理论”,DRY(Don’t repeat yourself),曳光弹,正交性,这些词的意思是什么你还记得么?《程序员修炼之道》这本书在我看来就是一本师傅写给徒弟的开发哲学指南。里面既讲了一些软件开发的哲学,比如破窗理论,它解释了你的代码为什么很快就会变成“屎山”。也讲了一些有用的技巧和工具,比如如何利用好shell,提升你的编程效率。这本书没有复杂的代码,没有晦涩难懂的原理,你完全可以当作一本闲书来看。这本书里提到的看似人人.

2021-07-12 17:14:16 238

原创 【程序人生】上海,想说爱你不容易

1.还记得18年秋天,我研究生第二年,在繁忙的金九银十校招季里,我最常对别人说的一句话就是,尽管上海工作机会多,可我不想去上海工作。“为什么不愿意选择上海呢?”,通常HR会在面试时候反问我。“也没有什么特别的理由,就是感觉,在那里生活压力蛮大的。” 我话里也带着些许真诚,和无知。当时的我对上海很熟悉吗?显然不熟。我二十几年的人生中,去上海旅游的次数不是特别多,最重要的是,我根本没有在上海长时间生活过。那我为啥就觉得不想去上海呢,这个问题,问任何一个人都能回答出两句:“你看上海,生活压力多大啊,

2021-05-30 21:21:38 677 5

原创 什么是微服务网关?SpringCloud Gateway保姆级入门教程

什么是微服务网关SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的:该项目借助Spring WebFlux的能力,打造了一个API网关。旨在提供一种简单而有效的方法来作为API服务的路由,并为它们提供各种增强功能,例如:安全性,监控和可伸缩性。而在真实的业务领域,我们经常用SpringCloud Gateway来做微服务网关,如果你不理解微服务网关和传统网关的区别,可以阅读此篇文章 Service Mesh和API Gateway关系深度.

2021-05-20 17:35:51 682

原创 MacBook M1 Windows for ARM虚拟机体验

前言大家好,我是 刚进入春天还没来得及踏青又开始从早忙到晚的 蛮三刀。去年给大家带来了一篇比较详尽的MacBook M1评测。评测经历了全网的热情转载,成为了我唯一的一篇爆款文章(我该哭还是该笑!)。上一期评测在这里:《一枚程序猿的MacBook M1详细体验报告》然后,今年春节一过,公司决定给大家一人一台MacBook M1,而且还同样是16G版本的,大家领电脑的那天,我的内心五味杂陈。本篇文章算是一次M1评测番外篇吧。主要来感受一下MacBook M1芯片下使用Windows10虚拟机的体验

2021-03-26 19:10:46 10879

原创 Github Action 快速上手指南

前言各位读者,新年快乐,我是过了年匆忙赶回上海努力搬砖的蛮三刀。Github之前更新了一个Action功能(应该是很久以前了),可以实现很多自动化操作。用来替代用户自己设置的自动化脚本(比如:钩子+Jenkins)。由于平时根本不会有需求用到它,毕竟平时都在用公司的CI/CD流程,所以一直没有机会玩Action。借着春节放假,就自己写个小Demo体验一下。本文通过实现一个提交代码后自动执行Junit单元测试并输出测试报告的自动化流程小Demo,来快速上手Github Action。Github

2021-02-20 17:06:50 1035

原创 【译文】工作六年后,我对软件开发的认知转变

前言大家好,在下蛮咕咕(我是“鸽”王),好久不见啊。最近我司已经放假过年了,在家里就不免会多逛一些“稀奇古怪”的网站,通过阮一峰的每周新闻,发现了一篇比较不错的英文文章。里面的大部分观点我都比较认同,在这里做了一个比较接地气的翻译,分享给大家。正文在软件产业工作六年后,我对软件行业的一些想法发生了改变。以下这些观点是我以前内心比较矛盾,但是现在坚信的事情:当你工作在一个开发人员众多且拥有不同开发水平的小组中,使用强类型语言显然更为合适。站会(敏捷开发中的站立会议)对于跟进团队中新

2021-02-15 23:15:13 429 2

原创 大型项目废弃fastjson迁移至Gson保姆级攻略

前言大家好,又双叒叕见面了,我是天天放大家鸽子的蛮三刀。在被大家取关之前,我立下一个“远大的理想”,一定要在这周更新文章。现在看来,flag有用了。。。本篇文章是我这一个多月来帮助组内废弃fastjson框架的总结,我们将大部分Java仓库从fastjson迁移至了Gson。这么做的主要的原因是公司受够了fastjson频繁的安全漏洞问题,每一次出现漏洞都要推一次全公司的fastjson强制版本升级,很令公司头疼。文章的前半部分,我会简单分析各种json解析框架的优劣,并给出企业级项目迁移json

2021-01-12 19:51:07 1113 1

原创 一枚程序猿的MacBook M1详细体验报告

前言2020年11月11日双十一上午,苹果发布了M1芯片的新款Mac,其最大的变化就是将处理器从Intel换成了苹果自研的ARM芯片M1。上一次苹果更换Mac芯片要追溯到2006年,14年前,苹果选择从PowerPc转向Intel,事实证明当时的换代给Mac带来了性能的大幅提升,是一次正确的选择。时隔14年,苹果再一次选择了更换芯片,摆脱了如日中天的x86架构Intel芯片,拥抱移动时代崛起的ARM架构。毕竟,苹果在手机和平板的A系列芯片上投入了太多精力和心血。本篇文章是我个人购买的MacBook

2020-11-30 19:13:55 16064 29

原创 【线上问题排查技巧】动态修改LOGGER日志级别

前言大多数情况下,我们会在打印日志时定义日志的LOGGER级别,用来控制输出的信息范围。一方面,过多的输出会影响查看日志的效率,另一方面,过少的日志让问题定位变得困难。但当线上出现问题时,线上容器通常定义在info级别,发生一些疑难问题时,光靠info级别的日志很难定位问题。一个典型的场景:在一些需要打印MySQL语句的场景,如果你正在使用MyBatis框架,由于MyBaits中SQL语句是DEBUG级别的信息,通常在线上容器就没法看到。一个丑陋的解决办法就是在沙箱/预发环境,将log4j.xml

2020-11-12 23:40:59 698

原创 【线上排查实战】AOP切面执行顺序你真的了解吗

前言忙,是我这个月的主旋律,也是我频繁鸽文章的接口————蛮三刀把刀公司这两个月启动了全新的项目,项目排期满满当当,不过该学习还是要学习。这不,给公司搭项目的时候,踩到了一个Spring AOP的坑。本文内容重点:问题描述Spring AOP执行顺序探究顺序错误的真相代码验证结论本文阅读大概需要:3分钟码字不易,求个关注,欢迎关注我的个人原创公众号:后端技术漫谈(二维码见文章底部)问题描述公司新项目需要搭建一个新的前后分离HTTP服务,我选择了目前比较熟悉的SpringB

2020-10-24 10:22:49 629 8

原创 缓存与数据库一致性问题深度剖析

前言本篇文章是我之前系列文章中的一篇,主要讨论了我们在平时的开发过程中,各大系统中都要用到的缓存数据的问题,进一步延伸到数据库和缓存的双写一致性问题,并且给出了所有方案的实现代码方便大家参考。本篇文章主要内容数据缓存为何要使用缓存哪类数据适合缓存缓存的利与弊如何保证缓存和数据库一致性不更新缓存,而是删除缓存先操作缓存,还是先操作数据库非要保证数据库和缓存数据强一致该怎么办缓存和数据库一致性实战实战:先删除缓存,再更新数据库实战:先更新数据库,再删缓存实战:缓存延时

2020-09-04 11:34:02 906

原创 一次完整的JVM堆外内存泄漏故障排查记录

前言记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些JVM内存分配机制以及常用的JVM问题排查指令和工具分享,希望对大家有所帮助。在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内存泄漏问题快速排查的几个原则。本文的主要内容:故障描述和排查过程故障原因和解决方案分析JVM堆内内存和堆外内存分配原理常用的进程内存泄漏排查指令和工具介绍和使用文章撰写不易,请大家多多支持我的原创技术公众号:后端

2020-08-26 18:13:02 1081 2

原创 MySQL选错索引导致的线上慢查询事故复盘

前言又和大家见面了!又两周过去了,我的云笔记里又多了几篇写了一半的文章草稿。有的是因为质量没有达到预期还准备再加点内容,有的则完全是一个灵感而已,内容完全木有。羡慕很多大佬们,一周能产出五六篇文章,给我两个肝我都不够。好了,不多说废话了…最近在线上环境遇到了一次SQL慢查询引发的数据库故障,影响线上业务。经过排查后,确定原因是SQL在执行时,MySQL优化器选择了错误的索引(不应该说是“错误”,而是选择了实际执行耗时更长的索引)。在排查过程中,查阅了许多资料,也学习了下MySQL优化器选择索引的基本准.

2020-07-30 20:07:45 528 3

原创 【秒杀系统】秒杀系统实战(五): 如何优雅的完成订单异步处理

前言我回来啦,前段时间忙得不可开交。这段时间终于能喘口气了,继续把之前挖的坑填起来。写完上一篇秒杀系统(四):数据库与缓存双写一致性深入分析后,感觉文章深度一下子被我抬高了一些,现在构思新文章的时候,反而畏手畏脚,不敢随便写了。对于未来文章内容的想法,我写在了本文的末尾。本文我们来聊聊秒杀系统中的订单异步处理。本篇文章主要内容为何我们需要对下订单采用异步处理简单的订单异步处理实现非异步与异步下单接口的性能对比一个用户抢购体验更好的实现方式前文回顾零基础实现秒杀系统(一):防止超卖.

2020-07-12 13:19:03 5351 7

原创 【读书笔记】《漫画算法》:克服对算法的恐惧,从漫画开始

写在开头在上小学和初高中的时候,要我写读后感这种东西,我是非常厌恶的。无非就是老师布置的一个作业,还是那种无趣且磨人的工作。结果十多年过去了,到了工作的年纪,看书反倒是自觉地写起读后感来了,而且居然能坚持这么一直写下去了。让我出现这种转变的动力有两个:一个是互联网前所未有的拉近了人们的距离,一篇读后感真的不仅仅是交给老师的作业,更是交给网友的作业,这让人变得有动力了很多,毕竟总会有有缘人会看见你的文章。第二,到了这个年纪,学习变成了越来越奢侈且费力的事情。年轻的时候总觉得自己的时间用不完,到了现在

2020-06-20 21:33:35 667

原创 【开源实战】Canal部署常见问题:重复解析/Filter失效/消费落后

前言Canal是阿里巴巴开源的数据库Binlog日志解析框架,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。在之前我写的文章阿里开源MySQL中间件Canal快速入门中,我已经介绍了Canal的基本原理和基础使用。在部署到生产环境的过程中,自己作为一个菜鸟,又踩了一些坑,期间做了记录和总结,并再解决后分析了下原因,便有了此文。本文重点内容Canal常见的三大问题原因分析及解决方案Binlog解析错误:重复解析/DML解析为QUERYFilter失效:设置过滤器无.

2020-06-11 20:23:06 2541

原创 【开源实战】阿里开源MySQL中间件Canal快速入门

前言距离上一篇文章发布又过去了两周,这次先填掉上一篇秒杀系统文章结尾处开的坑,介绍一下数据库中间件Canal的使用。Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能会用到。举个例子:公司目前有多个开发人员正在开发一套服务,为了缩短调用延时,对部分接口数据加入了缓存。一旦这些数据在数据库中进行了更新操作,缓存就成了旧数据,必须及时删除。删除缓存的代码理所当然可以写在更新数据的业务代码里,但有时候者写操作是在别的项目代码里,你可能无权修改,亦或者别人不愿你在他代码里写这.

2020-05-10 17:55:52 888

原创 【秒杀系统】秒杀系统实战(四):缓存与数据库双写一致性深度分析

前言微笑挖坑,努力填坑。        ———— 已经拥有黑眼圈,但还没学会小猪老师时间管理学的蛮三刀同学本文是秒杀系统的第四篇,我们来讨论秒杀系统中缓存热点数据的问题,进一步延伸到数据库和缓存的双写一致性问题,并且给出了实现代码。前文回顾和文章规划零基础上手秒杀系统(一):防止超卖零基础上手秒杀系统(二):令牌桶限流 + 再谈超卖零基础上手秒杀系统(三):抢购接口隐藏 + 单用户...

2020-04-25 15:46:36 4014 8

原创 【秒杀系统】零基础上手秒杀系统(三):抢购接口隐藏 + 单用户限制频率

前言时光飞逝,两周过去了,是时候继续填坑了,不然又要被网友喷了。本文是秒杀系统的第三篇,通过实际代码讲解,帮助你了解秒杀系统设计的关键点,上手实际项目。本篇主要讲解秒杀系统中,关于抢购(下单)接口相关的单用户防刷措施,主要说两块内容:抢购接口隐藏单用户限制频率(单位时间内限制访问次数)当然,这两个措施放在任何系统中都有用,严格来说并不是秒杀系统独特的设计,所以今天的内容也会比较的...

2020-03-27 21:09:26 2853

原创 【秒杀系统】零基础上手秒杀系统(二):令牌桶限流 + 再谈超卖

前言本文是秒杀系统的第二篇,通过实际代码讲解,帮助你快速的了解秒杀系统的关键点,上手实际项目。本篇主要讲解接口限流措施,接口限流其实定义也非常广,接口限流本身也是系统安全防护的一种措施,暂时列举这几种容易理解的:令牌桶限流单用户访问频率限流抢购接口隐藏此外,前文发出后很多同学对于乐观锁在高并发时无法卖出全部商品提出了“严正抗议”,所以还是在本篇中补充讲解下乐观锁与悲观锁。前文回...

2020-03-14 16:09:31 2039 10

原创 【秒杀系统】从零开始打造简易秒杀系统(一):防止超卖

前言大家好,好久不发文章了。(快一个月了- -)最近有很多学习的新知识想和大家分享,但无奈最近项目蛮忙的,很多文章写了一半搁置在了笔记里,待以后慢慢补充发布。本文主要是通过实际代码讲解,帮助你一步步搭建一个简易的秒杀系统。从而快速的了解秒杀系统的主要难点,并且迅速上手实际项目。我对秒杀系统文章的规划:从零开始打造简易秒杀系统:乐观锁防止超卖从零开始打造简易秒杀系统:令牌桶限流从零开...

2020-03-07 19:40:50 7932 11

原创 【算法】二叉树遍历算法总结:前序中序后序遍历

前言二叉树遍历是非常经典的算法题,也是二叉树的一道基础算法题。但是在平常的笔试面试中,其出现的频率其实并不是特别的高,我推测是这种题目相对来说比较基础,算是一个基础知识点。比如剑指offer中出现的后序遍历题目,是给出一个数字序列,让你判断是不是平衡二叉树后序遍历序列,这样出题的难度比直接让你写后序遍历难很多。但是,二叉树遍历容易吗?在递归方法下,前中后序遍历都是一个思路,理解起来也比较...

2020-02-22 17:53:56 3113

原创 【设计模式自习室】结构型:组合模式 Composite

前言《设计模式自习室》系列,顾名思义,本系列文章带你温习常见的设计模式。主要内容有:该模式的介绍,包括:引子、意图(大白话解释)类图、时序图(理论规范)该模式的代码示例:熟悉该模式的代码长什么样子该模式的优缺点:模式不是万金油,不可以滥用模式该模式的应用案例:了解它在哪些重要的源码中被使用该系列会逐步更新于我的博客和公众号(博客见文章底部),也希望各位观众老爷能够关注我的...

2020-02-12 23:38:43 465

空空如也

空空如也

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

TA关注的人

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