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

2022年5月15日

如何设计一个网页爬虫

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

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

2022年5月7日

如何设计一个RPC框架

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

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

2022年5月6日

设计一个短链接系统

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

posted @ 2022-05-06 21:53 myf008 阅读(608) 评论(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 阅读(169) 评论(0) 推荐(0)

2022年4月28日

Redis压缩列表详解

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

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

2022年4月24日

volatile底层实现原理

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

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

jmm八大原子操作

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

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

CopyOnWriteArrayList原理

摘要: CopyOnWriteArrayList原理 1、什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用 阅读全文

posted @ 2022-04-24 12:45 myf008 阅读(180) 评论(0) 推荐(0)

2022年4月23日

线程状态及各状态下与锁和CPU的关系

摘要: Thread.State枚举类型中定义了线程的六种状态:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING和TERMINATED。线程在某一时刻只能拥有一种状态,但是在线程的整个生命周期,线程的状态会发生变化。 public enum State { NEW, RU 阅读全文

posted @ 2022-04-23 17:36 myf008 阅读(258) 评论(0) 推荐(0)

热点账户处理

摘要: 热点账户(数据)处理 关于程序员技术面试,高并发、高可用是肯定躲不过的知识点,面试官不会直接这么问,而是嵌入到某些具体场景中。 比如,让你设计一个促销活动,紧俏的商品;或者发放优惠券,某事某刻发1000张5.5折优惠券等等。 这类题目一是考察你的整体架构设计能力,二是看你的回答中有没有高并发高可用的 阅读全文

posted @ 2022-04-23 17:19 myf008 阅读(407) 评论(0) 推荐(0)

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

导航