- 博客(615)
- 收藏
- 关注
转载 公司新来一个同事,把 @Transactional 注解运用得炉火纯青...
若有收获,请记得分享和转发哦这篇文章,会先讲述 @Transactional 的 4 种不生效的 Case,然后再通过源码解读,分析 @Transactional 的执行原理,以及部分 Case 不生效的真正原因。项目准备下面是 DB 数据和 DB 操作接口:uidunameusex1张三女2陈恒男3楼仔男...
2022-09-13 08:00:57
358
转载 Spring Boot + minio 实现高性能存储服务,So Easy~!
若有收获,请记得分享和转发哦什么是minio引用官网:MinIO是根据GNU Affero通用公共许可证v3.0发布的高性能对象存储。它与Amazon S3云存储服务兼容。使用MinIO构建用于机器学习,分析和应用程序数据工作负载的高性能基础架构。官网地址:https://min.io/文档地址:https://docs.min.io/一. 使用docker 搭建minio 服务。...
2022-09-12 08:00:18
400
转载 SpringCloud Feign的常见五类错误,你遇到过吗?
若有收获,请记得分享和转发哦很多时候,我们在使用SpringCloud 微服务框架的时候,就基本上少不了与feign打交道。毕竟服务之间的调用,基本上都不会用http调了,这样显得有点麻烦了,feign更方便了。而且feign,还自带了负载均衡的策略(ribbon提供),如果我们的服务是集群的,feign还能负载调用。这些估计大家都懂吧?不会还有人不懂吧?那这个要深入学习了。哈哈在用feign的日...
2022-09-11 07:57:03
468
转载 分布式锁工具Redisson,太香了!!
若有收获,请记得分享和转发哦正文一、Redisson概述什么是Redisson?—— Redisson WikiRedisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Qu...
2022-09-10 10:31:12
291
转载 SQL优化 20连问
若有收获,请记得分享和转发哦一、查询SQL尽量不要使用select *,而是具体字段1、反例SELECT*FROMuser2、正例SELECTid,username,telFROMuser3、理由节省资源、减少网络开销。可能用到覆盖索引,减少回表,提高查询效率。注意:为节省时间,下面的样例字段都用*代替了。二、避免在where子句中使用 or 来连接条件1、反例必须使用Innodb存储...
2022-09-09 08:00:48
138
转载 CTO 说了,谁还在用 Java Calendar 类处理时间的直接开除!!
若有收获,请记得分享和转发哦Java 8 已经普遍使用了,可是还在有人用 Java Calendar 处理时间和日期,不仅仅性能差,很切代码很冗余,就不能用 Java 8 提供的新 API 吗?所以 CTO 强制了,必须用 Java 8 处理日期,否则一律开除。下面是整理的 18 种处理日期的方式,可以收藏起来,一定有用。Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util....
2022-09-07 08:00:37
164
转载 人到中年这种茶要多喝,越喝血管越干净!坚持一个月,头晕眼花不再来!
央视揭秘的“土家神茶”跟你竟然有直接关系!就在昨天央视CCTV-10曝光出了《土家神茶》之后,”仙草“——《莓茶》就引起了震惊内外轰动!【探索发现-莓茶】揭开湘西土家族的 · 长寿秘密在湘西有个叫永定区茅岩河的地方那里的土家族人2000多年来沿袭着三个生活坏习惯:抽生烟、吃薰腊肉、摔碗酒(大碗酒)这些对于现代人来说属于三大陋习,各个致癌特别容易引起心脑血管、呼吸道疾病但来到以后发现一系列惊人的事实...
2022-09-06 08:00:50
906
转载 1万属性,100亿数据,每秒10万吞吐,架构如何设计?
若有收获,请记得分享和转发哦有一类业务场景,没有固定的schema存储,却有着海量的数据行数,架构上如何来实现这类业务的存储与检索呢?1万属性,100亿数据,10万吞吐,今天和大家聊一聊,这一类“分类信息业务”架构的设计实践。一、背景描述及业务介绍什么是分类信息平台最核心的数据?一个分类信息平台,有很多垂直品类:招聘、房产、二手物品、二手车、黄页等等,每个品类又有很多子品类,不管哪个品类,最核心的...
2022-09-06 08:00:50
139
转载 容器环境 JVM 内存配置最佳实践
若有收获,请记得分享和转发哦背景信息当您的业务是使用Java开发,且设置的JVM堆空间过小时,程序会出现系统内存不足OOM(Out of Memory)的问题。特别是在容器环境下,不合理的JVM堆参数设置会导致各种异常现象产生,例如应用堆大小还未到达设置阈值或规格限制,就因为OOM导致重启等。通过-XX:MaxRAMPercentage限制堆大小(推荐)在容器环境下,Java只能获取服务器的配置,...
2022-09-05 08:00:55
184
转载 敢在简历上写分布式系统经验,这个问题必拿下!
若有收获,请记得分享和转发哦案例背景在互联网分布式场景中,原本一个系统被拆分成多个子系统,要想完成一次写入操作,你需要同时协调多个系统,这就带来了分布式事务的问题(分布式事务是指:一次大的操作由多个小操作组成,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败)。那怎么设计才能实现系统之间的事务一致性呢?这就是咱们今天要讨论的问题,也是面试的高频问题。我先...
2022-09-04 08:00:36
589
转载 老烟民突然戒烟,会对身体有危害?正确戒烟这样做
青岛的于女士的丈夫陈先生是个老烟民,十几年如一日烟不离手,白天抽晚上抽,抽得嘴唇发紫牙变黄,常常咳嗽得二三十分钟都停不下,有时脸都憋成了猪肝色,吓得她好说歹说劝丈夫把烟戒了,可吸烟容易戒烟难,试了几次根本戒不了。无奈之下,于女士竟反其道而行,"鼓励"起了丈夫吸烟。于女士表面看似"鼓励"丈夫吸烟,但却提出一点要求,只要吸烟,必须用这个小烟嘴吸。陈先生本以为这只是个普通的过滤烟嘴,想着只要别干涉他抽烟...
2022-09-04 08:00:36
432
转载 求求你们了,别再乱用 parallelStream 了,速度竟然比 Stream 还要慢!!
若有收获,请记得分享和转发哦parallelStream 一定更快吗?大家都知道 Stream 分为顺序流和并行流:stream(顺序流)parallelStream(并行流)它们最大的区别就是 parallelStream 支持并行化处理,所以效率较 stream(顺序流)肯定是要更快的。这篇不会介绍 Stream 基础,Stream 系列我之前写过一个专题了,不懂的关注公众号Java技术栈,然...
2022-09-03 08:00:00
420
转载 Nginx 限流的天坑!!
若有收获,请记得分享和转发哦问题背景大家看看这个页面,有没有发现什么问题?主页:http://www.javastack.cn/是的,页面 CSS 样式全丢失了,导致页面混乱。。但现实也很残酷,不可能全部技术都学得精深,时间精力也不允许,技术更新也快,但有一点,遇到问题了,我们要学会总结经验,避免下次再犯,这样也是一个知识的积累过程。...
2022-09-02 08:00:37
121
转载 提升 Spring Boot 吞吐量的 7 个神技,让你的项目飞起来!
若有收获,请记得分享和转发哦一、异步执行实现方式二种:使用异步注解 @aysnc、启动类:添加 @EnableAsync 注解JDK 8 本身有一个非常好用的 Future 类——CompletableFuture@AllArgsConstructorpublicclassAskThreadimplementsRunnable{privateCompletableFuture...
2022-09-01 08:00:01
231
转载 实战:10 种实现延迟任务的方法,附代码!
若有收获,请记得分享和转发哦本文的主要内容如下图所示:什么是延迟任务?顾明思议,我们把需要延迟执行的任务叫做延迟任务。延迟任务的使用场景有以下这些:红包 24 小时未被查收,需要延迟执退还业务;每个月账单日,需要给用户发送当月的对账单;订单下单之后 30 分钟后,用户如果没有付钱,系统需要自动取消订单。等事件都需要使用延迟任务。...
2022-08-31 08:00:02
149
转载 聊聊动态代理IP
若有收获,请记得分享和转发哦前言有爬虫经验的小伙伴,在对知名网站爬数据时,是否都遇到过IP限制速度等情况呢?今天就跟大家聊聊什么是动态代理Ip,以及实现一个简单的爬虫。什么是动态代理IP动态代理的好处动态代理IP的类别申请获取代理ip使用代理IP使用代理ip简单爬下谷歌数据1. 什么是动态代理IP动态代理IP,指访问目标网站服务器的代理IP是不断变化的。它可以隐藏真实IP,让彼此无法追踪,成功地脱...
2022-08-30 08:00:32
328
转载 数据权限就该这么实现(实践篇),yyds!
若有收获,请记得分享和转发哦大家好,在上一篇文章中我们详细介绍了在RBAC模型中如何集成数据权限,本篇文章我们将通过实际案例,从代码实战的角度来实现这样的一个数据权限。数据权限模型上篇文章的数据模型是基于传统的RBAC模型来设计的,由于我们这里的应用场景不一样,所以这里的数据权限模型并没有严格按照上篇文章的方案来设计,但是万变不离其宗,核心原理还是相同的。首先我来介绍一下我们最终实现的效果实现效果...
2022-08-29 08:00:48
763
1
转载 数据权限就该这么设计,yyyds!
若有收获,请记得分享和转发哦项目实际开发中我们不光要控制一个用户能访问哪些资源,还需要控制用户只能访问资源中的某部分数据。控制一个用户能访问哪些资源我们有很成熟的权限管理模型即RBAC,但是控制用户只能访问某部分资源(即我们常说的数据权限)使用RBAC模型是不够的,本文我们尝试在RBAC模型的基础上融入数据权限的管理控制。首先让我们先看下RBAC模型。RBAC模型RBAC是Role-BasedAc...
2022-08-28 08:00:47
176
转载 推荐大家一个寄快递便宜的平台!
2022年了寄发快递早已成为当今社会的常态但说到寄快递,你真的会吗?你知道怎么寄快递更划算吗?作为一名超级网购达人今天就告诉你一个寄快递超级省钱秘籍(点击上面名片,立即关注)同样的地址,同一家快递公司价格几乎减半一件也可以超低价寄快递????????????关注它,寄快递超便宜-长按识别 -它整合了顺丰、德邦、圆通、韵达申通、中通、极兔等多家快递公司各快递公司报价一目了然任意比价,随意选择????????????关注它,寄快递超便...
2022-08-27 08:00:36
3238
转载 如何保证MySQL和Redis的数据一致性?
若有收获,请记得分享和转发哦这个问题在面试的时候经常会遇到,刚好前几天也有粉丝问了我这个问题,所以感觉有必要单独出一篇。之前也看了很多相关的文章,但是感觉讲的都不好,很多文章都会去讲各种策略,比如(旁路缓存)策略、(读穿 / 写穿)策略和(写回)策略等,感觉意义真的不大,然后有的文章也只讲了部分情况,也没有告诉最优解。我直接先抛一下结论:在满足实时性的条件下,不存在两者完全保存一致的方案,只有最终...
2022-08-27 08:00:36
136
转载 面试官:MyBatis 插件有什么用途?说说底层原理?我竟然不会。。
若有收获,请记得分享和转发哦背景关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能;但对其内部实现机制,涉及的软件设计模式,编程思想往往没有深入的理解。本篇案例将帮助读者对Mybatis插件的使用场景,实现机制,以及其中涉及的编程思想进行一个小结,希望对以后的编...
2022-08-26 08:00:24
82
转载 如何实现去重和幂等
若有收获,请记得分享和转发哦面试官:要不你来讲讲你最近在看的点呗?可以拉出来一起讨论下候选者:最近在看「去重」和「幂等」相关的内容面试官:那你就先来聊聊你对「去重」和「幂等」的理解吧候选者:我认为「幂等」和「去重」它们很像,我也说不出他们之间的严格区别候选者:我说下我个人的理解,我也不知道对不对候选者:「去重」是对请求或者消息在「一定时间内」进行去重「N次」候选者:「幂等」则是保证请求或消息在「任...
2022-08-25 08:00:40
97
转载 使用 Kafka 考虑的问题
若有收获,请记得分享和转发哦面试官:今天我想问下,你觉得Kafka会丢数据吗?候选者:嗯,使用Kafka时,有可能会有以下场景会丢消息候选者:比如说,我们用Producer发消息至Broker的时候,就有可能会丢消息候选者:如果你不想丢消息,那在发送消息的时候,需要选择带有 callBack的api进行发送候选者:其实就意味着,如果你发送成功了,会回调告诉你已经发送成功了。如果失败了,那收到回调之...
2022-08-24 08:00:56
100
转载 Kafka 基础
若有收获,请记得分享和转发哦面试官:今天要不来聊聊消息队列吧?我看你项目不少地方都写到Kafka了候选者:嗯嗯面试官:那你简单说明下你使用Kafka的场景吧候选者:使用消息队列的目的总的来说可以有三种情况:解耦、异步和削峰候选者:比如举我项目的例子吧,我现在维护一个消息管理平台系统,对外提供接口给各个业务方调用候选者:他们调用接口之后,实际上『不是同步』下发了消息。候选者:在接口处理层只是把该条消...
2022-08-23 08:00:27
91
转载 SpringBoot中这样编写 Controller 层代码,优雅!
若有收获,请记得分享和转发哦前言本篇主要要介绍的就是 controller 层的处理,一个完整的后端请求由 4 部分组成:接口地址(也就是 URL 地址)请求方式(一般就是 get、set,当然还有 put、delete)请求数据(request,有 head 跟 body)响应数据(response)本篇将解决以下 3 个问题:当接收到请求时,如何优雅的校验参数返回响应数据该如何统一的进行处理接...
2022-08-22 08:00:57
548
转载 顺丰快递:请签收MySQL灵魂十连
若有收获,请记得分享和转发哦1、SQL语句执行流程MySQL大体上可分为Server层和存储引擎层两部分。Server层:连接器:TCP握手后服务器来验证登陆用户身份,A用户创建连接后,管理员对A用户权限修改了也不会影响到已经创建的链接权限,必须重新登陆。查询缓存:查询后的结果存储位置,MySQL8.0版本以后已经取消,因为查询缓存失效太频繁,得不偿失。分析器:根据语法规则,判断你输入的这个SQL...
2022-08-21 08:00:33
106
转载 既然有 HTTP 协议,为什么还要有 RPC
每日早8点,精品英文听力和口语准时送上,请记得分享和转发哦我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议?于是就到网上去搜。不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在用一个我们不认识的概念去解释另外一个我们不认识的概念,懂的人不需要看,不懂的人看了还是不懂。这种看了,又好像没看的感觉,云里雾里的很难受...
2022-08-20 08:00:57
77
转载 你见过哪些目瞪口呆的 Java 代码优化技巧?
若有收获,请记得分享和转发哦前言我之前写过两篇关于优化相关文章,发表之后,在全网受到广大网友的好评。阅读量和点赞率都很高,说明了这类文章的价值。今天接着优化这个话题,我们一起聊聊Java中代码优化的30个小技巧,希望会对你有所帮助。1.用String.format拼接字符串不知道你有没有拼接过字符串,特别是那种有多个参数,字符串比较长的情况。比如现在有个需求:要用get请求调用第三方接口,url后...
2022-08-19 08:00:53
147
转载 如何优雅地干掉线上 bug?
若有收获,请记得分享和转发哦身为一个程序员,遇到线上问题那都是家常便饭的事儿。如果你在深夜看到一群同事围在一起,他们是在共同探讨什么哲学问题么?非也,他们一定是遇到了线上 BUG。线上问题只要影响到了核心业务流程那便是事故,所以一旦事故发生,无论你在约会,还是周末打游戏,甚至是在睡觉,只要接到了来自公司的电话,那只能赶紧连上公司网络加班了。 ...
2022-08-08 08:00:46
137
转载 ThreadLocal的八个关键知识点
若有收获,请记得分享和转发哦无论是工作还是面试中,我们都会跟ThreadLocal打交道,今天就跟大家聊聊ThreadLocal的八个关键知识点哈~ThreadLocal是什么?为什么要使用ThreadLocal一个ThreadLocal的使用案例ThreadLocal的原理为什么不直接用线程id作为ThreadLocalMap的key为什么会导致内存泄漏呢?是因为弱引用...
2022-08-07 08:00:08
91
转载 如何防止重复下单?
若有收获,请记得分享和转发哦用户下单流程我们从用户浏览商品开始,看看用户下单的简要过程:用户下单简要过程浏览商品:用户查看商品详情加购/结算:用户可以选择直接购买商品,也可以先加入购物车,用户购买的这一步就是结算确认下单:结算完成,就进入了下单页面,提交订单,这一步就会生成一个订单,然后进入付款页面我们可以看到,下单是发生在结算之后,下单之后,会生成唯一的订单号,接下来,...
2022-08-05 08:00:47
215
转载 Spring Boot 实现接口幂等性的 4 种方案
若有收获,请记得分享和转发哦一、什么是幂等性幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。二...
2022-08-04 08:00:51
170
转载 Redis 实现高并发下的库存扣减(高频面试)
若有收获,请记得分享和转发哦简历中使用电商当项目经验已经非常普遍了,不管你是包装的还是真实的,起码要能讲清楚电商中常见的问题,比如库存的操作怎么防止商品被超卖。在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。解决方案常见的解决方案有以下三种:使用 mysql 数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。还是使...
2022-08-03 08:00:14
1727
1
转载 查缺补漏 - Java 反射全面解析
若有收获,请记得分享和转发哦1、动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。2、静态语言与动态语言相对应的,运行时结构不可变的语言就是静态语言...
2022-08-02 07:55:36
111
转载 JWT 实现登录认证 + Token 自动续期方案,这才是正确的使用姿势!
若有收获,请记得分享和转发哦技术选型要实现认证功能,很容易就会想到JWT或者session,但是两者有啥区别?各自的优缺点?应该Pick谁?夺命三连区别基于session和基于JWT的方式的主要区别就是用户的状态保存的位置,session是保存在服务端的,而JWT是保存在客户端的。认证流程基于session的认证流程用户在浏览器中输入用户名和密码,服务器通过密码校验后生成...
2022-08-01 08:00:28
359
转载 我有 7 种实现 Web 实时消息推送的方案,7种!
若有收获,请记得分享和转发哦我有一个朋友~做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能。不过他还没想好用什么方式做,这里我帮他整理了一下几种方案,并简单做了实现。什么是消息推送(push)推送的场景比较多,比如有人关注我的公众号,这时我就会收到一条推送消息,以此来吸引我点击打开应用。消息推送(push)通常是指网站的运...
2022-07-31 08:00:34
659
转载 Spring Boot 统一参数校验、统一异常、统一响应,这才是优雅的处理方式!
若有收获,请记得分享和转发哦前言本篇主要要介绍的就是controller层的处理,一个完整的后端请求由4部分组成:接口地址(也就是URL地址)请求方式(一般就是get、set,当然还有put、delete)请求数据(request,有head跟body)响应数据(response)本篇将解决以下3个问题:当接收到请求时,如何优雅的校验参数返回响应数据该如何统一的进行处理接...
2022-07-30 08:00:52
176
转载 再见,秒杀
若有收获,请记得分享和转发哦前言最近心血来潮,想起前段时间公司举办的线下秒杀活动不理想,想研究一下秒杀系统的优化。当时活动现场有 200+ 会员,由于我们先前没有经验,各种原因导致用户在秒杀的时候 APP 页面白屏、卡死。业务部门想把手机甩我们开发脸上......当时我刚毕业也刚入职不久,不敢发表意见。现在逐渐膨胀,是时候重新设计一套秒杀系统了......问题分析有经验的...
2022-07-28 08:00:24
69
转载 换掉 UUID,NanoID 更快更安全!
若有收获,请记得分享和转发哦UUID 是软件开发中最常用的通用标识符之一。然而,在过去的几年里,其他的竞品挑战了它的存在。其中,NanoID 是 UUID 的主要竞争对手之一。因此,在本文中,我们将展开讨论 NanoID 的功能、它的亮点以及它的局限性,以便让我们更好地了解何时使用它。了解 NanoID 及其用法对于 JavaScript,生成 UUID 或 NanoID...
2022-07-27 08:00:05
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人