后端

万字长文告诉你,B 站是怎样崩的

一年之后,B 站终于把故障复盘写了出来。 我简单看了一下,和我当初猜测的原因部分吻合,猜对了由于某接口负载过大导致雪崩效应,但没有猜对导致负载过大的原因。 很显然,这篇文章是从纯技术角度解读本次故障的。 B 站有 UP 主做了这方面的视频,但受篇幅所限,讲的还不够细致,我尽力做了补充,但最终还是决定单独写一篇文章讲讲这件事。 如果大家对技术有一定了解,比如你听说过微服务、负载均衡、集群、多活,并且

Java多线程 - 线程通信

1. 通信方式 要想实现多个线程之间的协同,如:线程执行先后顺序、获取某个线程执行的结果等等。涉及到线程之间相互通信,分为下面四类: 文件共享 网络共享 共享变量 jdk提供的线程协调API 细分为: suspend/resume、wait/notify、park/unpark (1) 文件共享 文件共享 (2) 网络共享 网络资源的共享,此处略 (3) 变量共享 变量共

Redis 知识点全面击破,多图警告

什么是 Redis? Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。 Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它在开发人员中很受欢迎。 Redis不是通过迭代或者排序方式处理数据,而是一开始就按照数据结构方式组织。早期,它的使用很像 Memcached,但随着 Redis 的改进,它在许多其他用例中变

前端模块化(AMD,CMD,CommonJs,ES6)

文章序 总是会看到前端模块化的这几个技术,今天一次性整理,如有错误欢迎评论指正! AMD 异步加载,依赖前置,前置依赖建议写在前引用,在所有模块加载完成后立即执行回调函数,用户体验好,不容易造成卡顿 需要引用require.js //math.js define([], function () { function add(a, b) { return a + b; } ret

直接内存

什么是直接内存 直接内存就是指:java堆外内存。 直接内存不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域。 直接内存的分配不会受到java堆大小的限制,但是既然是内存,则肯定还是会受到本机总内存的大小及处理器寻址空间的限制。 服务器管理员配置虚拟机参数时,一般会根据实际内存设置-Xmx等参数信息,但经常会忽略掉直接内存,使得各个内存区域的总和大于物理内存限制。(包括物

怎样理解wait()、notify()和notifyAll()

wait():让持有该对象锁的线程等待 notify():唤醒任意一个处于waiting状态的线程 notifyAll():唤醒所有处于waiting状态的线程。 他们之间的关系是:通过调用对象的wait()方法使线程暂停运行,通过notify/notifyAll方法唤醒wait()暂停的线程。 注意: 调用对象的wait()、notify()、notifyAll()方法需要拥有对象的监视锁,即

Apache Tomcat RCE 稳定复现 保姆级!(CVE-2024-50379)附视频+POC

原文链接Apache Tomcat 最新RCE 稳定复现+分析 保姆级!!!附复现视频+POC前言最近爆出 Apache Tomcat条件竞争导致的RCE,影响范围当然是巨大的,公司也及时收到了相关情报,于是老大让我复现,以更好的帮助公司进行修复漏洞。复现难度其实并不大,

1700. 无法吃午餐的学生数量

题目: 学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。 餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮: 如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。 否则,这名学生会 放弃这个三明治 并回到队列的尾部。 这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止

【MySQL】数据库约束

  个人主页:♡喜欢做梦欢迎  👍点赞  ➕关注  ❤️收藏  💬评论目录 ✨一、数据库的约束🌟二、数据库约束的分类🌍 1.非空约束(NOT NULL)1.定义2.格式3.示例:列的信息可以为空: 指定列的信息不能为空:🌎 2.DEFA