- 博客(93)
- 收藏
- 关注
原创 后端程序员必备:四种限流算法,图文结合一篇拿下
前言最近我们系统引入了Guava的RateLimiter限流组件,它是基于令牌桶算法的实现的。本文将跟大家一起学习几种经典的限流算法。限流是什么?维基百科的概念如下:In computer networks, rate limiting is used to control the rate of requests sent orreceived by a network interface controller. It can be used to prevent DoS at
2022-01-25 16:20:40
383
原创 不是吧,不是吧,真的有比B+Tree更快的一种查询结构
我们都知道MySQL中的B+Tree索引结构,对于根据某个条件查找记录是非常快的。那么,在不断追求极致的驱动下,你有没有想过MySQL会不会有比B+Tree更快的数据结构,来加速查找记录的性能呢?答案是有的,MySQL为了让我们更快地获取自己想查找的记录,在InnoDB中,将查询频繁的条件和索引树结果做了一个Hash映射,这样,一个查询就不需要每次搜索B+Tree去定位结果了,这个Hash映射就叫做AHI,全称Adaptive Hash Index,自适应哈希索引。一听这名字,你或许已经猜出个一二了。没
2022-01-25 15:39:09
226
原创 Spring中的Controller和Service是线程安全的吗?我有点懵
结论:不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean 作用域(scope)类型singleton:单例,默认作用域。 prototype:原型,每次创建一个新对象。 request:请求,每次Http请求创建一个新对象,适用于WebApplicationContext环境下。 session:会话,同
2022-01-25 14:06:34
247
原创 Java架构进阶笔记:一不小心就死锁了,怎么办?
我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,例如账户 A 转账户 B、账户 C 转账户 D 这两个转账操作现实世界里是可以并行的,但是在这个方案里却被串行化了,这样的话,性能太差。试想互联网支付盛行的当下,8 亿网民每人每天一笔交易,每天就是 8 亿笔交易;每笔交易都对应着一次转账操作,8 亿笔交易就是 8 亿次转账操作,也就是说平均到每秒就是近 1万次转账操作,若所有的转账操作都串行,性能完全不能接受。
2022-01-25 13:57:25
119
原创 OAuth2 四种授权使用场景,图文结合不能再清晰了
1 OAuth 2.0 定义了四种授权方式密码模式(resource owner password credentials) 授权码模式(authorization code) 简化模式(implicit) 客户端模式(client credentials)1.1 密码模式这种模式是最不推荐的,因为 client 可能存了用户密码 这种模式主要用来做遗留项目升级为 oauth2 的适配方案 当然如果 client 是自家的应用,也是可以 支持 refresh token 一般
2022-01-24 17:17:01
1014
原创 RabbitMQ 可靠性、重复消费、顺序性、消息积压解决方案
前言为什么引入消息队列?引入 MQ 给我们解决了一些问题,但同时又引入了一些复杂的问题,这些问题是大型项目中必须解决的重点,更重要的是,面试也经常问。实际上消息队列可以说是没法百分之百保证可靠性的!RabbitMQ 提供的相关机制也只是在于缩小消息丢失的概率,或者说提供了消息丢失后的我们可以记录日志的功能。在解决这些问题时有必要明白一点,其实小公司业务量不大,并发量不高的情况下这些问题是几乎不会发生的......即使偶尔出现,开发人员手动修复数据处理就好。所以可结合公司实际业务场景看有没有必要解决这些.
2022-01-24 17:05:34
294
原创 堪称神级的阿里巴巴“高并发”教程《基础+实战+源码+面试+架构》
前言作为一个普普通通的程序员,如何才能提升自己的能力,在职场上拥有一技之长,这也成为普通的你我,迫切的需求。拥有什么样的能力才能不被淘汰?答案是:高并发,它几乎成为了每个程序员都想要拥有的经验。原因很简单:流量是大的电商公司必要的需求,比如,淘宝的双十一会产生大量的高并发,用户上亿,一天的流量就是几十亿,高峰期的并发量上十万。所以,如何抗住高并发,是这种大公司需要面对的。所以,你要是掌握了这项技术,工资蹭蹭地往你兜里钻。基础-实战-源码-面试-系统架构阿里巴巴深入理解高并发编程电子书感
2022-01-24 16:34:24
97
1
原创 为什么用了 DDD 以后,代码更难懂了?
每过一段时间,就会有人跳出来批判 DDD,这东西到底是垃圾还是银弹?在某某公司干活的时候,有一批人声称要用 DDD 改造老旧系统,彻底解决核心流程规模化之后,项目难以维护的问题。之前某篇文章里的这张图,就是在用 DDD 做项目重构之前的烂摊子:大家都很聪明,聪明到最后没人知道这新需求到底该往哪里写了。架构师们聚在一起学习 DDD 精神,产出学习报告,大半年过去,终于出了一些成果,有些子项目完成了用 DDD 进行的重构,年底可以拿来在酒会上邀功了,这下我们跟上了业界业务开发的主流方法论,可喜可
2022-01-24 16:08:10
100
原创 「设计模式」汉堡中的设计模式——策略模式
前言哈喽,大家好,今天要分享的知识点是关于策略模式的使用,观看本文章可能需要耗费【8】分钟,通过本文,你可以认识到以下几个知识点什么是策略模式针对策略模式的局限,又有哪些解决办法枚举策略了解一下?情景带入话说昨天,麦当劳搞活动,板烧只要5块大洋!!!下班了之后我就骑着心爱的小摩托飞奔过去,在等待了一段(long)时(long)间(time)...... 终于如愿以偿地握着这简单的快乐看着手里的板烧,心里突然就有了一些想法,现在搞活动,部分商品低价就可以拿到,但是搞活动不能一直搞吧,那
2022-01-24 15:50:29
146
原创 为什么微服务一定要有API网关?
微服务不能没有网关,就如同 Java 程序员不能没有IDEA、Eclipse。为什么呢?之所以网关对微服务这么重要,主要有以下几点原因:1. 解决 API 放哪里的问题要知道,采用微服务架构的系统本身是由很多的独立服务单元组合起来的。而客户端要调用系统,则必须通过系统提供的各种对外开放的功能 API 来实现。问题来了,这些 API 要放在哪里呢?直接放在组成系统的服务单元上行不行?比如,在一套电商系统上,关于订单相关的 API ,放在组成订单服务的服务单元上;风控服务的 API ,放在组
2022-01-24 15:42:43
120
原创 芜湖起飞,Alibaba全新出品JDK源码学习指南(终极版)限时开源
JDK源码大家都知道,源码这个东西面试跑不掉工作上还得去学习其中思想跟设计模式,真正喜欢看源码的多半有点“变态”。这玩意催眠又晦涩难懂,看了也会忘,需要先一点点针对某个组件或者某部分去看,一口吃不成大胖子!就拿JDK源码来说,它是个类库,加入了很多辅助代码、泛型、以及一些设计模式上的考量,没有方法毫无头绪的去看没多会你就会晕头转向!这时站在巨人的肩膀上学习无疑会省很多力气。今天LZ就把前段时间阿里一位老哥私授我的JDK源码学习指南分享出来给大家,希望对大家有所帮助!这份JDK源码学习指
2022-01-24 14:56:13
281
转载 拒绝花里胡哨,MySQL统计总数就用count(*)
有一个问题是这样的统计数据总数用count(*)、count(主键ID)、count(字段)、count(1)那个效率高。先说结论,不用那么花里胡哨遇到统计总数全部使用count(*).但是有很多小伙伴就会问为什么呢?本期文章就解决大家的为什么。一、不同存储引擎的做法你需要知道的是在不同的存储引擎下,MySQL对于使用count(*)返回结果的流程是不一样的。在Myisam中,每张表的总行数都会存储在磁盘上,因此执行count(*)时,是直接从磁盘拿到这个值返回,效率是非常高的。
2022-01-24 14:15:35
350
原创 如何在项目中记录日志信息?
大家好,我是3y。在正文之前,先给各位股东汇报下austin项目进度:总的来说,我感觉这次的反响还是不错的,虽然阅读量不高。但留言的人多了很多,也有很多人都担心我会不会鸽掉(更新一半中途就断了)我只能说:别慌,绝对不鸽,你只管追更就好。我已经决定每个周末都扛着电脑回家,有空就往附近的图书馆里跑(图书馆是学习的YYDS,在家的效率就是要比图书馆要低不少)不多BB了,今天继续聊个话题:日志01、什么是日志所谓日志,在我理解下就是:记录程序运行时的信息在Java
2022-01-24 14:11:01
333
原创 温故十大经典排序算法
一、什么是排序算法1.1、排序定义对一序列对象根据某个关键字进行排序。1.2、排序术语稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度:运行完一个程序所需内存的大小。1.3、算法总结(注意:n指数据规模;
2022-01-23 14:47:39
119
原创 美团面试:如何设计一个注册中心?
在前面,已经跟大家分享过我去美团面试中遇到的一些题目,对此我也把这些题目进行了一系列分析。今天,给大家分享如何设计一个注册中心。不管是出于面试,还是深入学习注册中心,关于如何设计一个注册中心都是一个很好的话题。假设现在我们系统有两个小系统:订单系统 商品系统单个系统分别部署在不同服务器上,如果我们订单系统需要调用商品系统的某个服务:怎么调用?方法1:商品系统开发的朋友告诉你对应的地址。方法2:商品系统开发的朋友把对应API地址存放到某个地方。方法3
2022-01-22 14:44:33
189
原创 上线访问破万,不愧是业界最强,阿里限产Kafka从实战到源码手册限时开源
这段时间招聘季,收到不少关于 Kafka 的问题,确实 Kafka 近两年的行情,可谓是水涨船高了。不谦虚地说,目前 Apache Kafka 被认为是整个消息引擎领域的执牛耳者,仅凭这一点就值得我们好好学习一下它。另外,从学习技术的角度而言,Kafka 也是很有亮点的。我们仅需要学习一套框架就能在实际业务系统中实现消息引擎应用、应用程序集成、分布式存储构建,甚至是流处理应用的开发与部署,听起来还是很超值的吧。总之 Kafka 是个利器,值得一试!既然知道了为什么要学 Kafka,却还是有很多人无从
2022-01-12 15:26:12
88
原创 绝无仅有:带你漫游数据结构世界
数据结构是什么?程序 = 数据结构 + 算法是的,上面这句话是非常经典的,程序由数据结构以及算法组成,当然数据结构和算法也是相辅相成的,不能完全独立来看待,但是本文会相对重点聊聊那些常用的数据结构。数据结构是什么呢?首先得知道数据是什么?数据是对客观事务的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号总称。那为何加上“结构”两字?数据元素是数据的基本单位,而任何问题中,数据元素都不是独立存在的,它们之间总是存在着某种关系,这种数据元素之间的关系我们称...
2022-01-12 14:00:54
176
原创 10年阿里人告诉你:秒杀系统设计就该这么玩
秒杀活动是指网络商家为促销等目的组织或网上限时抢购活动,这种活动具有瞬时并发量大、库存量少和业务逻辑简单等特点。设计一个秒杀系统需要考虑的因素很多,比如对现有业务的影响、网络带宽消耗以及超卖等因素。本文会讨论秒杀系统的各个环节可能存在的问题以及解决方案。秒杀系统傻瓜式秒杀系统秒杀系统的核心难点是并发量,如果不考虑并发问题,那么我们可以用如下图所示的简单的系统结构来实现秒杀系统,用户只有两个简单操作:刷新界面和秒杀按钮,服务端也只有两个服务接口:返回秒杀界面和处理秒杀逻辑。假设本文中秒杀商品有10
2022-01-11 13:49:06
88
原创 如果在线上遇到了OOM,该如何解决?
OOM 意味着程序存在着漏洞,可能是代码或者 JVM 参数配置引起的。这篇文章和读者聊聊,Java 进程触发了 OOM 后如何排查常说对生产环境保持敬畏之心,快速解决问题也是一种敬畏的表现为什么会 OOM?OOM 全称 “Out Of Memory”,表示内存耗尽。当 JVM 因为没有足够的内存来为对象分配空间,并且垃圾回收器也已经没有空间可回收时,就会抛出这个错误为什么会出现 OOM,一般由这些问题引起分配过少:JVM 初始化内存小,业务使用了大量内存;或者不同 JVM 区域分...
2022-01-10 19:38:55
435
原创 妙啊,美团 OCTO 分布式服务治理系统,这描述也太清晰了
OCTO 是美团千亿调用量的分布式服务通信框架及服务治理的系统,可实现服务注册、服务自动发现、服务管理、容错处理、数据可视化、服务监控报警、服务分组等。本文总结了 OCTO 架构原理、Java 应用的集成方法、以其控制台的使用。1 概述OCTO 是 octopus(章鱼) 的缩写。是美团公司级基础设施,为公司所有业务提供统一的高性能服务通信框架,使业务具备良好的服务运营能力,轻松实现服务注册、服务自动发现、负载均衡、容错、灰度发布、数据可视化、监控告警等功能,提升服务开放效率、可用性及服务运维效率。
2022-01-10 14:12:11
257
原创 头秃了,使用@AutoConfigureBefore指定配置类顺序竟没生效?
前言日常工作中对于Spring Boot提供的一些启动器可能已经足够使用了,但是不可避免地需要自定义启动器,比如整合一个陌生的组件,也想要达到开箱即用的效果。在上一章节从底层源码介绍了Spring Boot的自动配置的原理,未读过的朋友建议看一下:Spring Boot 自动配置源码解析这篇文章将会介绍如何自定义一个启动器,同时对于自动配置类的执行顺序做一个详细的分析。如何自定义一个starter?启动器的核心其实就是自动配置类,在自动配置源码分析的章节已经介绍过,AutoC...
2022-01-10 13:48:35
385
原创 就凭它?能在GitHub发布秒获百万访问?这份Java程序性能优化实战笔记究竟有何神奇之处?
前言:本书从底层源码的角度对Redis的数据结构以及持久化、主从复制、哨兵和集群等特性的实现原理进行了详尽的剖析﹐图文并茂。行文中也能看出作者团队在源码分析和系统编程方面的功力﹐我相信本书对于所有想要了解Redis及其内部实现的人来说都会有所帮助。目录展示:目录内容截图虽然多,但是还是值得展示给大家看一些这份多为资深专家联合编写的书籍有多强!这份资料一共有22个章节,需要获取的小伙伴仅需添加小助理vx:bjmsb0606006即可!内容章节:本书在内容逻辑
2022-01-08 20:47:54
53
原创 耗时三年,华为18级工程师才总结出这份Java亿级高并发核心编程手册
移动时代、5G时代、物联网时代的大幕已经开启,新时代提升了对Java应用的高性能、高并发的要求,也抬升了Java工程师的技术台阶和面试门槛。很多公司的面试题从某个侧面反映了生产场景的技术要求。之前只有BAT等大公司才有高并发技术相关的面试题,现在与Java项目相关的整个行业基本都涉及此类面试题。Java NIO、Reactor模式、高性能通信框架Netty、分布式锁、分布式ID、分布式缓存、高并发架构、JUC、JMM、高并发设计模式、线程池、微服务框架(如Spring Cloud、Nginx反向代理)等
2022-01-08 19:29:09
94
原创 堪称最全的Java面试笔记(准备+基础+数据库+框架+面经)
十二月份,在阿里的朋友看我在找工作给了本他自己的独家宝典——[Java突击面试笔记],通过学习我终于明白为什么他可以进阿里的真正原因,在这里分享给大家!看完这份[Java突击面试笔记]后我把它分为以下5篇内容准备篇:求职指南+简历怎么写+面试前关心的问题+如何学习等基础篇:Java基础+Java集合计算机网络+操作系统+数据结构+算法+操作系统等数据库篇:MySQL+Redis等框架篇:Spring+MyBatis+Kafka+Netty+SpringBoot等面经篇:蚂蚁金服+百度
2022-01-08 16:13:20
178
原创 图文并茂,一气呵成,阿里“扫地僧”用342页PDF剖析MySQL主从原理
前言:在超大规模流量的分布式系统环境下,无论是从系统性能的角度,还是从数据安全性的角度,掌握MySQL主从原理,都是当下技术人员的必备基本功。MySQL主从原理是高可用架构的基石,即便是在MGR这种集群架构中也可以看到主从的影子。要解决一个问题或者故障,最快的方式就是了解它的原理,快速定位问题。本书从源码层面抽丝剥茧般地描述MySQL主从原理,全面地介绍了GTID相关的知识点,并解析了主要Event的生成、作用和格式,以及线程的初步知识、MDLLOCK、排序等热门话题和主从相关的案例。无论是MySQ
2022-01-08 15:35:34
122
原创 这份写在一月的面试宝典,献给正在准备三月份面试Java开发的你们
最近金三银四很多小伙伴找我要一些Java面试资料,于是我翻箱倒柜,把这份阿里巴巴大牛总结的Java面试宝典找出来,免费共享给大家!据说有小伙伴靠这份笔记顺利进入 BAT 哦,所以一定要好好学习这份资料!目录简介资料介绍这份资料非常全面且详细,覆盖了Java面试的方方面面,非常适合需要面试的朋友!资料也按目录进行编排,每一篇下面都有更具体的内容:图文结合每一个关键的面试知识点都会有详细的图文讲解。面试技巧如何获取需要这份Java面试宝典的
2022-01-08 15:35:07
251
原创 震撼来袭,阿里巴巴内部疯传Java面试参考权威指南三月版开源
阿里巴巴的IT一直都可以说是行业的标杆,尤其是Java语言的开发,在BATJ等等这些大厂中可以说是人群最多的了!就在十二月初的时候好多粉丝朋友们问楼主,有没有一些面试相关的学习资源,今天他不就来了嘛!阿里巴三月份最新面试参考指南(泰山版),可以说是面试神册!下面且听楼主为大家娓娓道来!泰山版目录大纲泰山版的内容有:分布式,亿级流量架构设计,消息中间件,数据库,设计模式,数据结构与算法,阿里巴巴面试题举例等等内容!泰山版优质内容展示合并相同的词(
2022-01-08 14:43:02
80
原创 不会吧,阿sir,真的只有你还不会用RequestId看日志 ?
引言在日常的后端开发工作中,最常见的操作之一就是看日志排查问题,对于大项目一般使用类似ELK的技术栈统一搜集日志,小项目就直接把日志打印到日志文件。那不管对于大项目或者小项目,查看日志都需要通过某个关键字进行搜索,从而快速定位到异常日志的位置来进一步排查问题。对于后端初学者来说,日志的关键字可能就是直接打印某个业务的说明加上业务标识,如果出现问题直接搜索对应的说明或者标识。例如下单场景,可能就直接打印:创建订单,订单编号:xxxx,当有问题的时候,则直接搜索订单编号或者创建订单。在这种方式下,经常会
2022-01-08 14:06:15
97
原创 自从用了SkyWalking分布式链路追踪,我睡得越来越香了
篇文章介绍链路追踪的另外一种解决方案Skywalking,文章目录如下:什么是Skywalking?上一篇文章介绍了分布式链路追踪的一种方式:Spring Cloud Sleuth+ZipKin,这种方案目前也是有很多企业在用,但是作为程序员要的追逐一些新奇的技术,Skywalking作为后起之秀也是值得大家去学习的。skywalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 ,2017年加入Apache孵化器。短短两年就被Apache收入麾下,实力可见一斑。.
2022-01-08 13:42:04
144
原创 普本毕业一年,不甘平庸,靠着这1000道JAVA面试题,终逆袭上岸
前言本人20年毕业于一所普通本科,实习的时候也就想着混一张毕业证,也没做什么实际项目,再加上去年就业形式严峻,行业内卷,索性就选择了一家小企业公司,直到后来来才知道是属于外包。(也太惨了!耳边回想起老师说的话:千万别去外包)想想算了,谁让自己菜,还是先好好学点技术吧,但是工作起来就是日复一日的CRUD,没有996的工资,同样逃不过996的命,这时候联系了一个同毕业的同学,大概意思就是:哎,自己过得也不好,虽然在华为工资高,但是天天赶项目,妥妥的凡尔赛!也许是被刺激到了,想着今年金九银十一定要
2022-01-07 17:22:48
409
原创 Spring MVC花费三小时,居然直接上手搭建一个案例出来?
Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现工具推荐Shell 似乎没有定制的 IDE,这里推荐 VS Code 搭配对应的插件:shellman 智能提示和自动补全,在插件页面有介绍常用代码片段的触发关键词,作者在 Shellman reborn 中写到了 Shellman 诞生的故事,挺有趣的 shellcheck 语法静态检查工具,插件安装后需要本地
2022-01-05 13:23:44
115
原创 为什么互联网大厂都愿意用Mybatis?MyBatis缓存特性你了解吗?
一、缓存简介一般我们在系统中使用缓存技术是为了提升数据查询的效率。当我们从数据库中查询到一批数据后将其放入到混存中(简单理解就是一块内存区域),下次再查询相同数据的时候就直接从缓存中获取数据就行了。这样少了一步和数据库的交互,可以提升查询的效率。但是一个硬币都具有两面性,缓存在带来性能提升的同时也“悄悄”引入了很多问题,比如缓存同步、缓存失效、缓存雪崩等等。当然这些问题不是本文讨论的重点。本文主要讨论MyBatis缓存这个比较鸡肋的功能。虽然说MyBatis的缓存功能比较鸡肋,但是为了全面了解M
2022-01-04 19:20:53
201
原创 我以为我对Mysql事务很熟,直到我遇到了阿里面试官
前言迎面走来了一个风尘仆仆的身穿格子衫的男子,手里拿着一个MacBook Pro,看着那稀少的发量,和那从容淡定的眼神。我心里一颤,我去,这是架构师,架构师来面我技术面,我心里顿时不淡定了,表面很稳实则心里慌的一批。果然,他手里拿着我的简历,快速的扫了一下,然后用眼角余光看了一下我,上来就开问。Mysql事务简介「面试官:」看你简历上说精通Mysql优化方法,你先来说说你对Mysql的事务的了解吧。我心里喜了一下,这个简单啊,哥我可是北大(背大)的,在来面试之前,早就有准备的,二话.
2022-01-04 14:49:50
96
原创 SpringBoot+WebSocket实时监控异常
写在前面此异常非彼异常,标题所说的异常是业务上的异常。最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。因为需要服务端主动向客户端发送消息,所以很容易的就想到了用WebSocket来实现这一功能。WebSocket就不做介绍了,上链接:https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket前端略微复杂,需要在一张位置分布图上进行鼠标描
2022-01-04 13:53:03
187
原创 妹子始终没搞懂OAuth2.0,今天整合Spring Cloud Security 说明白
本篇文章介绍一下OAuth2.0相关的知识点,并且手把手带大家搭建一个认证授权中心、资源服务进行OAuth2.0四种授权模式的验证,案例源码详细,一梭子带大家了解清楚。本篇文章的案例源码项目架构为:Spring Boot + Spring Cloud Alibaba + Spring Security文章目录如下:为什么需要OAuth2.0?编码永远都是为了解决生产中的问题,想要理解为什么需要OAuth2,当然要从实际生活出发。举个例子:小区的业主点了一份外卖,但是小区的门禁系统
2022-01-04 13:44:48
465
原创 赶紧收藏,月薪5万的程序员必备软件清单
1、idea业界排名第一的java开发工具,非常非常好用,如果还在用eclipse的朋友,赶紧来体验一把,你一定会爱上她的。2、navicat玩mysql的同学,这个工具应该很熟悉了吧,算是玩mysql必备的管理工具。3、dbeaver万能数据库管理工具,navicat收费了,建议同学们可以体验一下这个工具,比navicat更优秀。4、submine非常强大的一款文本编辑器,特别好用。http://www.sublimetext.cn/5
2021-12-31 14:02:37
170
原创 如何提升springboot服务吞吐量
背景生产环境偶尔会有一些慢请求导致系统性能下降,吞吐量下降,下面介绍几种优化建议。方案1、undertow替换tomcat电子商务类型网站大多都是短请求,一般响应时间都在100ms,这时可以将web容器从tomcat替换为undertow,下面介绍下步骤:1、增加pom配置<dependency> <groupid>org.springframework.boot</groupid> <art
2021-12-31 13:56:33
177
原创 Cloudreve自建云盘实践,我说了没人能限制得了我的容量和速度
一、前言为啥要用自建网盘,市面上的云盘不香了?每一个用户需求的背后都是因为有场景存在,而这些差异化的场景也都是因为不同的用户类型产生的。就像我作为技术号主想分享一些自己总结的资料,放到一些云盘以后有时候会被其他不知道从哪冒出来的小伙伴给举报,举报链接就取消了,取消了链接也就影响了我的资料分享。同时我可能还希望我的分享内容能被记录到下载次数、允许几次下载、下载时是否要做一些引流动作等等。所以类似这样的特殊场景下就需要自建网盘来维护个人需要的资料,与之类似的还有一些公司或者组织都会建相对私域的网
2021-12-31 13:51:29
315
原创 Spring中的Controller和Service是线程安全的吗?我有点懵
结论:不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean 作用域(scope)类型singleton:单例,默认作用域。 prototype:原型,每次创建一个新对象。 request:请求,每次Http请求创建一个新对象,适用于WebApplicationContext环境下。 session:会话,同
2021-12-31 13:38:45
210
原创 纯硬货,Spring Cloud Gateway整合OAuth2.0 实现分布式统一认证授权
大家好,我是不才陈某~今天这篇文章介绍一下Spring Cloud Gateway整合OAuth2.0实现认证授权,涉及到的知识点有点多,有不清楚的可以看下陈某的往期文章。文章目录如下:微服务认证方案微服务认证方案目前有很多种,每个企业也是大不相同,但是总体分为两类,如下:网关只负责转发请求,认证鉴权交给每个微服务商控制 统一在网关层面认证鉴权,微服务只负责业务你们公司目前用的是哪种方案?先来说说第一种方案,有着很大的弊端,如下:代码耦合严重,每个微服务都要维护一套认
2021-12-31 13:21:39
557
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人