GaryLee's Blog
Zookeeper注册中心挂了会影响Dubbo服务间的正常通信吗? Zookeeper注册中心挂了会影响Dubbo服务间的正常通信吗?
一、背景Dubbo服务在启动时都会从Zookeeper注册中心同步一份消费者/生产者的连接信息到本地,并通过Watch机制更新(如其中一台消费者挂了,就会通知生产者更新本地缓存的连接信息)。 二、 Zookeeper注册中心挂了会影响Dub
2023-11-27
如何解决短信验证码接口被狂刷导致系统崩溃的问题? 如何解决短信验证码接口被狂刷导致系统崩溃的问题?
一、背景短信验证码功能我们都不陌生,我们印象中的短信验证码都是有发送限制的(如60s内只能发送1次),这样做的目的一方面是为了保护系统,另一方面也是为了控制成本(发短信要钱的)。 我们先简单分析一下短信验证码接口被狂刷的主要场景有哪些:
2023-11-27
线上MySQL如何给千万级大表加索引? 线上MySQL如何给千万级大表加索引?
一、背景如果我们直接在线上MySQL给千万级大表加索引,会导致长时间卡死(锁表)甚至崩溃,所以我们不能直接在原表上加索引,如: ALTER TABLE `user` ADD INDEX `test_idx`(`name`); 二、解决方案
2023-11-22
Mybatis的工作原理是什么? Mybatis的工作原理是什么?
一、什么是Mybatis?Mybatis是一个持久化框架,可以帮助我们快速做数据库交互开发。 常规的数据库交互开发,我们需要有下面几步: 创建Connection 创建Statement 代码中拼接SQL语句 返回结果集转换 … 而使用
2023-11-21
什么是SpringBoot的Starter?如何自定义一个Starter? 什么是SpringBoot的Starter?如何自定义一个Starter?
一、什么是SpringBoot的Starter?SpringBoot的Starter说白了就是一系列依赖关系的集合,它可以让我们的依赖关系变得更简单。 Starter有以下几个特点: 自动配置:Starter提供了相关的自动配置类,可以根
2023-11-16
为什么Lua脚本可以保证原子性? 为什么Lua脚本可以保证原子性?
一、什么是原子性?原子性这个概念在数据库中和在并发编程中是两种不同的概念: 数据库中的原子性:要么都执行,要么都不执行 并发编程中的原子性:操作不可拆分、不被中断 Lua脚本是属于并发编程中的原子性,可以保证原子性,但是不能保证要么都执
2023-11-13
什么是Redis的数据分片? 什么是Redis的数据分片?
一、什么是Redis的数据分片?Redis的数据分片(Sharding)指的是将数据集分为多个子集,分别存储在不同的Redis节点上,提高了Redis集群的性能和扩展性。 二、如何实现Redis的数据分片?Redis的数据分片实现一般是按照
2023-11-13
如何保证高并发下的直播送礼能够快速完成? 如何保证高并发下的直播送礼能够快速完成?
一、背景在如今比较火热的直播行业中,随之而来的是数不胜数的送礼。那么直播行业流量这么大的前提下,送礼行为我们要怎么做到快速完成呢?既要快速处理快速返回,也要保证数据正常无误。 二、高并发下的挑战我们要处理高并发下的挑战,就需要从几个方面入手
2023-11-13
Java中四种引用有什么区别? Java中四种引用有什么区别?
一、Java中四种引用分别是什么?Java中四种引用分别是: 强引用:默认引用,使用后不会被垃圾回收器回收(如果内存不足,则直接报错OOM)。例子代码为String[] arr = new String[]{"a","b"}; 弱引用:如
2023-11-12
线程和进程有什么区别? 线程和进程有什么区别?
一、什么是线程和进程? 线程也叫做轻量级进程。多个线程可以在同一个进程中同时执行,并且共享进程的资源如内存空间、网络连接等 进程对应计算机中正在运行的一个程序实例 二、线程和进程有什么区别? 一个进程包含多个线程 进程之间互相独立,线程之
2023-11-12
Redis集群中什么是脑裂问题?如何解决的? Redis集群中什么是脑裂问题?如何解决的?
一、什么是Redis集群?具体可参考文章《Redis集群》 二、什么是脑裂问题?脑裂通俗来说就是大脑裂开了,在Redis集群中指的是有多个集群子集,每个集群子集都有自己的大脑(即Leader节点),那么就会出现不同大脑之前的数据不一致问题。
2023-11-10
Redis有哪几种常用的缓存读写策略? Redis有哪几种常用的缓存读写策略?
一、Redis有哪几种常见的缓存读写策略?在Redis中,有3种常见的缓存读写策略,分别为: Cache Aside Pattern(旁路缓存模式):同时更新数据库和缓存 Read/Write Through Pattern(读写穿透):
2023-11-08
3 / 16