![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试笔记
面试实战笔记
椰子Tyshawn
你眼中的世界就是你自己的样子。
展开
-
MySQL分库分表必知必会
1. 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)? 一个高并发系统的瓶颈主要在数据库层, 为了缓解数据库的压力, 我们可以这样做: 使用Redis缓存减少数据库的读并发. 使用Kafka消息队列来进行写并发削峰. 数据库SQL优化, 必须走索引. 水平分表. 读写分离. 垂直分库. 水平分库. 2. 分库分表的类型 垂直分表 垂直分表一般在表设计时就应该做好. 根据业务将...原创 2020-03-28 14:19:27 · 631 阅读 · 0 评论 -
ZooKeeper必知必会
1. ZooKeeper有哪些使用场景? (1) 分布式锁 在分布式系统中经常会遇到并发问题, 比如领取新人礼包, 限制每个人只能领取一次, 为了避免机器刷量的问题, 我们可以使用ZooKeeper实现的分布式锁. (2) Master选举 比如kafka集群控制器选举. (3) 服务注册中心 比如Dubbo服务注册中心, Dubbo将服务提供者的地址注册到ZooKeeper, 然后服务消费者从Z...原创 2020-03-26 11:09:51 · 421 阅读 · 0 评论 -
Dubbo必知必会
1. 为什么要进行系统拆分? 如何拆? (1) 为什么要进行系统拆分? 所有的业务模块都在一个系统中, 导致系统太过于庞大, 迭代, 维护困难, 比如开发时很容易出现代码冲突, 一次小改动就需要大量的回归测试. 大一统的系统会系统的可靠性降低, 一个小地方出现问题就会导致整个系统不可用. 不利于技术升级, 如果某个业务系统想要技术升级, 就必须整个系统跟着一起技术升级. (2) 如何拆? 使用...原创 2020-03-21 16:14:23 · 422 阅读 · 0 评论 -
TCP三次握手与四次挥手详解
我们都知道TCP协议是面向连接的, 建立连接时需要三次握手, 断开连接时需要四次挥手, 那三次握手和四次挥手的具体流程是怎样的呢? 为什么建立连接时需要三次握手, 两次行不行? 为什么断开连接时需要四次挥手, 三次行不行? 下面我们就一起来了解下. TCP协议格式 我们先来了解下TCP报文中一些重要的字段. 源端口和目的端口 客户端和服务端的端口号. 序号 序号是报文段发送的数据中第一个字节的...原创 2020-03-19 22:14:43 · 420 阅读 · 0 评论 -
Redis必知必会
1. 在项目中缓存是如何使用的? 结合自己的公司的项目, 回答以下问题: 项目哪里用了缓存? 为什么要用? 用了可能会带来什么问题? 怎么解决这些问题? 项目的缓存架构是怎么样的? 如果面试官没有问这些问题, 我们也要主动和面试官聊聊. 2. 为什么要在项目中用缓存? (1) 高性能 如果不使用缓存, 每次请求都有较大的延迟, 比如600ms, 而如果每次请求都走缓存, 可能2ms就搞定了...原创 2020-03-04 16:19:30 · 441 阅读 · 0 评论 -
Elasticsearch必知必会
前置知识: Elasticsearch基本概念与核心原理 Elasticsearch数据建模 1. Elasticsearch的分布式架构原理是什么? Elasticsearch是分布式的, 在多台机器上启动ES进程实例, 组成一个ES集群. ES集群中的节点会选举出一个master节点来管理集群, 比如负责索引的创建与删除, 负责主分片与副本分片的身份切换等等. ES集群的master节点选举算...原创 2020-02-02 17:55:34 · 598 阅读 · 1 评论 -
Kafka必知必会
前置知识: Kafka消息队列理解 Kafka发送消息和读取消息 1. 为什么使用消息队列? 解耦 异步 削峰 面试时要结合自己项目中的业务场景回答, 而不是直接背诵概念, 如果面试官没有问到这些问题, 我们可以主动提出聊聊自己的理解. (1) 解耦 现有系统A, B, C, 系统B和C需要系统A的数据, 然后我们就修改系统A的代码, 给系统B, C发送数据. 这时系统D也需要系统A的数据...原创 2020-02-01 20:44:24 · 764 阅读 · 0 评论