上一页 1 2 3 4 5 6 7 ··· 15 下一页

2022年5月17日

基于 Redis 的限流系统的设计

摘要: 基于 Redis 的限流系统的设计 作者:邬凯强 https://www.jianshu.com/p/a3d068f2586d 本文讲述基于 Redis 的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计;在实现方面,算法使用的是令牌桶算法来,访问 Redis 使用 lua 脚本。 1、概 阅读全文

posted @ 2022-05-17 09:29 myf008 阅读(89) 评论(0) 推荐(0) 编辑

使用Redis实现令牌桶算法

摘要: 使用Redis实现令牌桶算法 Redis实现令牌桶算法之前看过有些程序实现的令牌桶,其向桶中放入令牌的方法是启动一个线程,每隔Y单位时间增加一次令牌数量,或者在Timer中定时执行这一过程。我不太满意这种方法, 原因有二,一是浪费线程资源,二是因为调度的问题执行时间不精确。 这里确定令牌桶中令牌数量 阅读全文

posted @ 2022-05-17 09:28 myf008 阅读(443) 评论(0) 推荐(0) 编辑

2022年5月15日

分布式 ID 的设计方案

摘要: Java 中分布式 ID 的设计方案 文章目录 什么是分布式 ID 为什么需要分布式 ID 分布式 ID 需要满足的条件 常用分布式 ID 生成方案 方案一:使用 UUID 生成 IDUUID 什么是UUID 的结构组成Java 中使用 UUID 工具生成 IDUUID 作为分布式 ID 的优缺点 阅读全文

posted @ 2022-05-15 16:44 myf008 阅读(90) 评论(0) 推荐(0) 编辑

如何设计一个网页爬虫

摘要: 如何设计一个网页爬虫 第一步:简述用例与约束条件 把所有需要的东西聚集在一起,审视问题。不停的提问,以至于我们可以明确使用场景和约束。讨论假设。 我们将在没有面试官明确说明问题的情况下,自己定义一些用例以及限制条件。 1.1 用例 我们把问题限定在仅处理以下用例的范围中 服务 抓取一系列链接: 生成 阅读全文

posted @ 2022-05-15 11:26 myf008 阅读(389) 评论(0) 推荐(0) 编辑

2022年5月7日

如何设计一个RPC框架

摘要: 如何设计一个RPC框架? 今天,就来聊聊“如何设计一个RPC框架”,那么首先明确一个问题什么是 RPC 呢? RPC是Remote Procedure Call的缩写,即远程过程调用。 RPC 是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而开发人员无需额外地为这个 阅读全文

posted @ 2022-05-07 15:17 myf008 阅读(1161) 评论(0) 推荐(0) 编辑

2022年5月6日

设计一个短链接系统

摘要: 设计一个短链接系统 前言 在发送短信和微博等限定字数的场景下,短链接的需求就应运而生了。 原理 一张图概括了短链接干的事: 来源:孤独的烟 短链接设计关键在于: 短链接生成的算法:如何保证足够短且不冲突。 其中常用的算法有 1、基于哈希的MurmurHash 算法 2、十进制转62进制 3、自增序列 阅读全文

posted @ 2022-05-06 21:53 myf008 阅读(572) 评论(0) 推荐(0) 编辑

bin log 与 redo log 的一致性问题

摘要: 美团二面:如何解决 bin log 与 redo log 的一致性问题 刚看见这个题目的时候还是有点懵逼的,后来才反应过来其实问的就是 redo log 的两阶段提交 为什么说 redo log 具有崩溃恢复的能力 前面我们说过,MySQL Server 层拥有的 bin log 只能用于归档,不足 阅读全文

posted @ 2022-05-06 12:07 myf008 阅读(121) 评论(0) 推荐(0) 编辑

2022年4月28日

Redis压缩列表详解

摘要: 压缩列表的最大特点,就是它被设计成一种内存紧凑型的数据结构,占用一块连续的内存空间,不仅可以利用 CPU 缓存,而且会针对不同长度的数据,进行相应编码,这种方法可以有效地节省内存开销。 但是,压缩列表的缺陷也是有的: 不能保存过多的元素,否则查询效率就会降低; 新增或修改某个元素时,压缩列表占用的内 阅读全文

posted @ 2022-04-28 10:49 myf008 阅读(238) 评论(0) 推荐(0) 编辑

2022年4月24日

volatile底层实现原理

摘要: volatile如何保证可见性 我们都知道volatile具有可见性和有序性,但是不保证原子性。这篇文章主要是看一下volatile如何保障可见性的。 我们知道一般我们在使用多线程的过程中,为了保持同一个变量的一致性,都会使用volatile关键字进行修饰。那么volatile是在内存模型中起到一个 阅读全文

posted @ 2022-04-24 15:35 myf008 阅读(1147) 评论(1) 推荐(1) 编辑

jmm八大原子操作

摘要: JMM数据同步八大原子操作 lock(锁定):作用于主内存的变量,把一个变量标记为一条线程独占状态 unlock(解锁):作用于主内存的变量,把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定 read(读取):作用于主内存的变量,把一个变量值从主内存传输到线程的工作内存中,以便随后 阅读全文

posted @ 2022-04-24 15:34 myf008 阅读(127) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 15 下一页

导航