自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

热爱技术,热爱生活

  • 博客(55)
  • 资源 (7)
  • 收藏
  • 关注

原创 聊聊在618大促活动的情况下,怎么设计一个抽奖系统

首先,需要考虑618的特点,比如巨大的流量峰值,可能同时有数百万甚至上千万的用户参与抽奖,系统必须能够处理这些请求而不崩溃。总之,这个系统需要从架构设计、技术选型、核心流程、高并发处理、容灾、安全等多个方面综合考虑,确保在高并发下稳定、公平、高效地运行。最后测试环节,必须做全链路压测,模拟真实流量,找出瓶颈。在核心流程上,用户发起抽奖请求后,首先要检查用户资格,比如是否已经参与过,这需要查询Redis中的记录。高并发优化方面,限流是必须的,可以用令牌桶或漏桶算法,在网关层做全局限流,服务层做局部限流。

2025-05-27 11:43:46 651

原创 字节一面:假如某一天你的系统突然变慢了,变卡了,你会怎么办?以你的经验,说说你的具体的排查思路。

比如,假设运行top后发现某个Java进程CPU使用率特别高,这时候可以用ps -mp [pid] -o THREAD,tid,time查看线程的情况,找到占用高的线程ID,再转换成16进制,用jstack导出线程栈,看看具体在执行什么代码,是否有死循环或者频繁的GC。然后是Redis的慢查询,需要检查慢查询日志,使用slowlog get命令,并分析原因,比如复杂命令、数据量过大等,并给出优化建议,如拆分命令、使用批量操作等。实际排查中,这些组件的问题往往是系统变慢的核心原因。

2025-05-23 09:59:36 804

转载 Nginx面试题(总结最全面的面试题!!!)

Java面试总结汇总,整理了包括Java重点知识,以及常用开源框架,欢迎大家阅读。文章可能有错误的地方,因为个人知识有限,欢迎各位大佬指出!文章持续更新中......ID标题地址1设计模式面试题(总结最全面的面试题)juejin.cn/post/684490…2Java基础知识面试题(总结最全面的面试题)juejin.cn/post/684490…3Java集合面试题(总结最全面的面试题)juej...

2023-08-24 22:28:16 125

转载 TCP、UDP、Socket、HTTP网络编程面试题(总结最全面的面试题!!!)

先看一天面试的经验:第一场:面试官:你说一下TCP的三次握手我:第一次Client将SYN置1......、第二次Server收........、 第三次........面试官:很难背吧?我:......是啊,很难,要不我在和你说说四次挥手?面试官:别了别了回去等通知吧......我:"......"第二场: 心里憋了一万个草泥马来到的第二家....面试官:你说一下TCP的三次握手我(心里在想,还...

2023-08-21 22:12:43 319

转载 JVM成神路之初识虚拟机 - 探寻Java虚拟机的前世今生之秘

引言JVM(Java Virtual Machine)Java虚拟机的概念大家都不陌生,Java之所以可以做到“一次编译,到处运行”的跨平台性,其根本原因就在于JVM。JVM是建立在操作系统(OS)之上的,Java虚拟机屏蔽了开发人员与操作系统的直接接触,我们在通过Java编写程序时,只需要负责编写Java代码即可,关于具体的执行则会由JVM加载字节码后翻译成机械指令交给OS执行。同时JVM方面的...

2023-08-02 20:07:39 248

转载 全面理解并发编程之分布式架构下Redis、ZK分布式锁的前世今生

引言在前面的大部分文章中,我们反复围绕着线程安全相关问题在对Java的并发编程进行阐述,但前叙的文章中都是基于单体架构的Java程序进行分析的,而如今单体的程序远不足以满足日益渐增的用户需求,所以一般目前Java程序都是通过多机器、分布式的架构模式进行部署。那么在多部署环境下,之前我们分析的CAS无锁、隐式锁、显式锁等方案是否还有效呢?答案是无效。一、单体架构下的锁迁移分布式架构分析在前面关于Sy...

2023-07-30 21:35:51 242

转载 彻悟并发之JUC分治思想产物-ForkJoin分支合并框架原理剖析下篇

引言在《(十二)彻悟并发之JUC分治思想产物-ForkJoin分支合并框架原理剖析上篇》中,我们曾初步了解了ForkJoin分支合并框架的使用,也分析框架的成员构成以及任务提交和创建工作的原理实现,在本篇则会对框架的任务执行、任务扫描、线程挂起、结果合并以及任务窃取的源码实现进行分析。一、工作线程执行任务/工作窃取实现过程在上篇的最后,从signalWork() -> tryAddWorke...

2023-07-27 23:36:36 136

转载 彻悟并发之JUC分治思想产物-ForkJoin分支合并框架原理剖析上篇

引言在上篇文章《深入理解并发之Java线程池、工作原理、复用原理及源码分析》中,曾详细谈到了Java的线程池框架。在其中也说到了JDK提供的四种原生线程池以及自定义线程池,而本文则再来详细谈谈JDK1.7中新推出的线程池:ForkJoinPool。但ForkJoinPool的出现并不是为了替代ThreadPoolExecutor,而是作为它的补充,因为在某些场景下,它的性能会比ThreadPool...

2023-07-24 22:01:56 148

转载 深入理解Java并发编程之线程池、工作原理、复用原理及源码分析

一、引言一般在开发过程中,一个功能是运行时长太久了,一般是通过什么方式去优化的?异步/多线程,对于一个业务方法而言,如果其中的调用链太长势必会引起程序运行时间延长,导致整个系统吞吐来量下降,而我们使用多线程方式来对该方法的调用链进行优化,对于一些耦合度不是特别高的调用关系可以直接通过多线程来走异步的方式进行处理,大大的缩短了程序的运行时长,但是如果我们的多线程创建方式是通过 new Thread(...

2023-07-23 23:37:29 175

转载 深入并发编程之并发容器:阻塞队列、写时复制容器、锁分段容器原理详谈

引言相信大家在学习JavaSE时都曾接触过容器这一内容,一般Java中的容器可分为四类:Map、List、Queue以及Set容器,而在使用过程中,对于ArrayList、HashMap等这类容器都是经常使用的,但问题在于这些容器在并发环境下都会存在线程安全问题。所以当我们在多线程环境下使用容器时,一般会使用Vector、HashTable来代替之前的ArrayList、HashMap,或者通过如...

2023-07-20 22:09:36 576

转载 并发之Runnable、Callable、FutureTask及CompletableFuture原理分析

引言关于Runnable、Callable接口大家可能在最开始学习Java多线程编程时,都曾学习过一个概念:在Java中创建多线程的方式有三种:继承Thread类、实现Runnable接口以及实现Callable接口。但是实则不然,真正创建多线程的方式只有一种:继承Thread类,因为只有new Thread().start()这种方式才能真正的映射一条OS的内核线程执行,而关于实现Runnabl...

2023-07-17 23:43:49 409

转载 Spring Ioc源码分析系列--@Autowired源码解析

前言前面系列文章分析了一把Spring Ioc的源码,是不是云里雾里,感觉并没有跟实际开发搭上半毛钱关系?看了一遍下来,对我的提升在哪?意义何在?如果没点收获,那浪费时间来看这个作甚,玩玩游戏不香?这段玩笑话可不是真的玩笑,提升需要自己去把握,意义也需要自己去挖掘。纸上得来终觉浅,绝知此事要躬行。最好是跟着代码调试一遍才会留下自己的印象,这过程收获的会比你想象中的要多。看山是山,看水是水。看山不是...

2023-03-23 21:06:23 275

转载 微服务网关技术选型,推荐参考这篇

微服务近⼏年⾮常⽕,围绕微服务的技术⽣态也⽐较多,⽐如微服务⽹关、Docker、 Kubernetes等,最近也在了解这块,所以写了这篇文章记录下。API网关简图:image.png一:API⽹关基础1.1 什么是API⽹关API⽹关是⼀个服务器,是系统的唯⼀⼊⼝。 从⾯向对象设计的⻆度看,它与外观模式类似。API⽹关封装了系统内部架构,为每个客户端提供⼀个定制的API。它可能还具有其它职责,如身...

2023-03-12 20:01:15 411

转载 Spring源码解析-Spring 循环依赖

Spring源码解析简图:image.pngSpring 如何解决循环依赖,⽹上的资料很多,但是感觉写得好的极少,特别是源码解读⽅⾯,我就⾃⼰单独出⼀ 篇,这篇⽂章绝对肝!文章目录:一. 基础知识1.1 什么是循环依赖 ?⼀个或多个对象之间存在直接或间接的依赖关系,这种依赖关系构成⼀个环形调⽤,有下⾯ 3 种⽅式。image.png我们看⼀个简单的 Demo,对标“情况 2”。@Servicep...

2023-03-09 21:33:47 80

转载 经典八股文,梳理ThreadLocal的八个关键知识点

前言 大家好,我是捡田螺的小男孩。无论是工作还是面试中,我们都会跟ThreadLocal打交道,今天就跟大家聊聊ThreadLocal的八个关键知识点哈~ThreadLocal是什么?为什么要使用ThreadLocal一个ThreadLocal的使用案例ThreadLocal的原理为什么不直接用线程id作为ThreadLocalMap的key为什么会导致内存泄漏呢?是因为弱引用吗?Key为什么要设...

2023-02-26 20:43:03 333

转载 又一次非常劲爆的Spring AOP 源码解析

之前写过 IOC 的源码分析,那篇文章真的有点长,看完需要点耐心。很多读者希望能写一写 Spring AOP 的源码分析文章,这样读者看完 IOC + AOP 也就对 Spring 会有比较深的理解了。今天终于成文了,可能很多读者早就不再等待了,不过主要为了后来者吧。本文不会像 IOC 源码分析那篇文章一样,很具体地分析每一行 Spring AOP 的源码,目标读者是已经知道 Spring IOC...

2023-02-21 23:29:09 192

转载 Spring IOC 绝对劲爆的源码分析

Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring 相关的一些问题。本文采用的源码版本是 4.3.11.RELEASE,算是 5....

2023-02-19 21:27:02 135

转载 Dubbo高级应用以及源码解析

开篇本文主要介绍一些dubbo的高级应用。在平时使用dubbo时,最常用的还是直接加@DubboService、@DubboReference注解,dubbo还提供了更多的高级功能供我们使用。本文采用的示例是在dubbo系列第一篇Dubbo基础应用的基础上进行修改的,这里不再赘述。服务降级服务降级,是针对于某个服务提供者而言的,服务消费者在调用某个服务提供者时,如果该服务提供者报错了,所采取的措施...

2023-01-09 22:22:49 419

转载 Dubbo基础应用

开篇大家好,我是黎杜,今天我们主要来聊一下dubbo,本文主要介绍一些dubbo的高级应用。在平时使用dubbo时,最常用的还是直接加@DubboService、@DubboReference注解,dubbo还提供了更多的高级功能供我们使用。本文采用的示例是在上一篇Dubbo框架介绍的基础上进行修改的,这里不再赘述。服务版本@DubboService、@DubboReference都有versio...

2023-01-07 20:47:51 322

原创 再见2022,2023年,我来了

大家好,我是黎杜,2022年即将过去,2023年就要来临,祝大家新年快乐。各位靓仔靓女又老一岁(手动狗头)。2022年总结来说是非常艰难的一年,生活艰难,就业艰难。之前有很多小伙伴找我内推,但是实在是没有hc,所以非常抱歉,内推不了。而且,前几天我们部门有个同事才被裁掉,赔偿了N+2,可知大环境实在是不好,公司都在降本增效,所以2022年真的非常难。虽然,生活很难,但是我们依旧要前行,忘记2022...

2023-01-01 13:35:36 262

转载 Java 技术栈中间件优雅停机方案设计与实现全景图

本文概要在上篇文章 我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景 中笔者为大家详细介绍了 Netty 在处理连接关闭时的完整过程,并详细介绍了 Netty 如何应对 TCP 连接在关闭时会遇到的各种场景。在连接关闭之后,接下来就轮到 Netty 的谢幕时刻了,本文笔者会为大家详尽 Java 技术栈中间件中关于优雅停机方案的详细设计和实现。...

2022-12-27 19:53:27 285 1

转载 为了带你搞懂RPC,我们手写了一个RPC框架

如今,分布式系统大行其道,RPC 有着举足轻重的地位。Dubbo、Thrift、gRpc 等框架各领风骚,学习RPC是新手也是老鸟的必修课。本文带你手撸一个rpc-spring-starter,深入学习和理解rpc相关技术,包括但不限于 RPC 原理、动态代理、Javassist 字节码增强、服务注册与发现、Netty 网络通讯、传输协议、序列化、包压缩、TCP 粘包、拆...

2022-07-27 21:54:37 324

转载 万字长文 | 深入理解 OpenFeign 的架构原理

大家好,我是悟空呀。上次我们深入讲解了 Ribbon 的架构原理,这次我们再来看下 Feign 远程调用的架构原理。一、理解远程调用远程调用怎么理解呢?远程调用和本地调用是相对的,那我们先说本地调用更好理解些,本地调用就是同一个 Service 里面的方法 A 调用方法 B。那远程调用就是不同 Service 之间的方法调用。Service 级的方法调用,就是我们自己构造...

2022-07-24 19:35:24 417

转载 10道中厂JVM面试题

前言整理了10个经典又容易被疏忽的JVM面试题,谢谢阅读,大家加油哈github地址,感谢每颗star❝https://github.com/whx123/JavaHome❞公众号:「捡田螺的小男孩」1. 对象一定分配在堆中吗?有没有了解逃逸分析技术?「对象一定分配在堆中吗?」 不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。「什么是逃逸分析?」逃逸分...

2022-07-13 23:46:30 150

转载 Redis 高可用原理

大家好,我是楼仔!Redis 的高可用,太重要啦!之前找工作面试,这个问题面试的频率都能排到前几,尤其是一些大厂,先不要着急看文章,如果面试官给你抛这么个问题,你会怎么回答呢,可以先想 5 分钟。这里要等待 5 分钟 ...其实我也可以偷个懒,完全转载其它博客,但是没有找到我想要的,为了不辜负广大粉丝,楼哥还是单独给大家写一篇,主要根据这块知识,再结合之前的一些面试情况,...

2022-07-07 21:35:16 132

转载 面试必备!TCP协议经典十五连问!

前言TCP协议是大厂面试必问的知识点。整理了15道非常经典的TCP面试题,希望大家都找到理想的offer呀公众号:捡田螺的小男孩1. 讲下TCP三次握手流程开始客户端和服务器都处于CLOSED状态,然后服务端开始监听某个端口,进入LISTEN状态第一次握手(SYN=1, seq=x),发送完毕后,客户端进入 SYN_SEND 状态第二次握手(SYN=1, ACK=1, ...

2022-06-28 23:01:45 420

转载 面试必备:聊聊分布式锁的多种实现!

前言 大家好,我是捡田螺的小男孩。今天跟大家探讨一下分布式锁的设计与实现。希望对大家有帮助,如果有不正确的地方,欢迎指出,一起学习,一起进步哈~分布式锁概述数据库分布式锁Redis分布式锁Zookeeper分布式锁三种分布式锁对比1. 分布式锁概述 我们的系统都是分布式部署的,日常开发中,秒杀下单、抢购商品等等业务场景,为了防⽌库存超卖,都需要用到分布式锁。分布式锁其实就...

2022-06-12 21:26:22 205

转载 InnoDB两万字详解

前言 大家好,我是捡田螺的小男孩。本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。为什么需要加锁呢?InnoDB的七种锁介绍一条SQL是如何加锁的RR隔离级别下的加锁规则如何查看事务加锁情况死锁案例分析1. 为什么需要加锁? 数据库为什么需要加锁呢?在日常生活中,如果你...

2022-06-05 20:54:37 230

转载 腾讯6问分库分表

前言 大家好,我是捡田螺的小男孩,今天跟大家聊聊分库分表。什么是分库分表为什么需要分库分表如何分库分表什么时候开始考虑分库分表分库分表会导致哪些问题分库分表中间件简介1. 什么是分库分表 分库:就是一个数据库分成多个数据库,部署到不同机器。分表:就是一个数据库表分成多个表。2. 为什么需要分库分表 2.1 为什么需要分库呢?如果业务量剧增,数据库可能会出现性能瓶颈,这时候...

2022-05-31 22:09:56 174

转载 总结MySQL慢查询的12个原因

前言 大家好,我是捡田螺的小男孩。日常开发中,我们经常会遇到数据库慢查询。那么导致数据慢查询都有哪些常见的原因呢?今天田螺哥就跟大家聊聊导致MySQL慢查询的12个常见原因,以及对应的解决方法。1. SQL没加索引 很多时候,我们的慢查询,都是因为没有加索引。如果没有加索引的话,会导致全表扫描的。因此,应考虑在where的条件列,建立索引,尽量避免全表扫描。反例:sele...

2022-05-29 20:07:12 1916 1

转载 Spring Boot 性能太差,教你几招轻松搞定

点击下方“黎杜”,选择“设为星标”文章来源:http://a.nxw.so/1biCvy目录异步执行增加内嵌 Tomcat 的最大连接数使用 @ComponentScan()默认 Tomcat 容器改为 Undertow使用 BufferedWriter 进行缓冲Deferred 方式实现异步调用异步调用可以使用 AsyncHandlerInterceptor 进行拦截异...

2022-05-19 20:15:00 225

转载 一文将透Netty之Reactor在Netty中运用

本系列Netty源码解析文章基于 4.1.56.Final版本在上篇文章《聊聊Netty那些事儿之从内核角度看IO模型》中我们花了大量的篇幅来从内核角度详细讲述了五种IO模型的演进过程以及ReactorIO线程模型的底层基石IO多路复用技术在内核中的实现原理。最后我们引出了netty中使用的主从Reactor IO线程模型。netty中的reactor.png通过上篇文章...

2022-05-17 22:53:18 656

转载 消息队列原理和选型:Kafka、RocketMQ 、RabbitMQ 和 ActiveMQ

大家好,我是楼仔!之前写了一篇文章 消息队列:从选型到原理,一文带你全部掌握,干货真的很多,但是可读性很差,不想让这篇文章被埋没,五一特意花了 7 个小时重新整理。消息队列中间件重要吗?面试必问问题之一,你说重不重要。我有时会问同事,为啥你用 RabbitMQ,不用 Kafka,或者 RocketMQ 呢,他给我的回答 “因为公司用的就是这个,大家都这么用”,如果你去面试...

2022-05-15 19:02:09 233

转载 oppo后端16连问

前言 大家好,我是程序员田螺。最近有位读者去面试了oppo,给大家整理了面试真题的答案。希望对大家有帮助哈,一起学习,一起进步。聊聊你印象最深刻的项目,或者做了什么优化。你项目提到分布式锁,你们是怎么使用分布式锁的?常见分布式事务解决方案你们的接口幂等是如何保证的?你们的MySQL架构是怎样的?常见的索引结构有?哈希表结构属于哪种场景?给你ab,ac,abc字段,你是如何...

2022-05-08 22:14:46 186

转载 万能架构设计:ES+Redis+MySQL,这套组合可应对80%业务场景

一、背景会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。随着同程和艺龙两家公司的合并,越来越多的系统需要打通同程APP、艺龙APP、同程微信小程序、艺龙微信小程序等多平台会员体系。例如微信小程序的交叉营销,用户买了一张火车票,此...

2022-04-28 23:35:56 2378

转载 小厂后端十连问(附答案)

前言 大家好,我是捡田螺的小男孩。最近技术讨论群一位朋友去面试,分享了一份面试真题,我整理了一下答案给大家。如果有不正确的,欢迎指出哈,一起进步。Redis的key和value可以存储的最大值分别是多少?怎么利用Redis实现数据的去重?Redis什么时候需要序列化?Redis序列化的方式有哪些?MySQL的B+树的高度怎么计算?线程池的状态有哪些?获取多线程并发执行结果...

2022-04-14 20:43:24 176

转载 腾讯云后端15连问!

前言 大家好,我是捡田螺的小男孩,最近一位朋友(6年工作经验)面了腾讯云,以下是面试题和答案。加油,一起卷。聊聊项目,好的设计,好的代码谈谈什么是零拷贝?一共有几种 IO 模型?NIO 和...

2022-03-20 21:07:56 233

转载 聊聊Netty那些事儿之从内核角度看IO模型

从今天开始我们来聊聊Netty的那些事儿,我们都知道Netty是一个高性能异步事件驱动的网络框架。它的设计异常优雅简洁,扩展性高,稳定性强。拥有非常详细完整的用户文档。同时内置了很多非常有...

2022-03-14 20:59:25 138

转载 社招后端21连问(三年工作经验一面)

前言 大家好,我是捡田螺的小男孩。有位朋友工作三年,去面试,给大家整理一下面试题,并附上答案。Mysql索引在什么情况下会失效MySql的存储引擎InnoDB与MyISAM的区别Mysql...

2022-03-08 21:24:31 230

转载 一文聊透对象在JVM中的内存布局,内存对齐和压缩指针

大家好,我是bin,又到了每周我们见面的时刻了,我的公众号在1月10号那天发布了第一篇文章?《从内核角度看IO模型的演变》,在这篇文章中我们通过图解的方式以一个C10k的问题为主线,从内核...

2022-03-06 20:25:52 342

com.springsource.flex.messaging.common-3.2.0.3978.jar

com.springsource.flex.messaging.common-3.2.0.3978.jar

2019-12-25

空空如也

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

TA关注的人

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