摘要: 一文详解 Synchronized 关键字 1、Synchronized的使用 代码块形式: // 这个括号中的对象可以是this,也可以是自定义的 Object // 还可以是这个类的class对象, 类.class synchronized (this) { // 同步代码块 } 方法形式: // 锁对象默认是this public sy 阅读全文
posted @ 2021-10-24 15:02 Maple~ 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 吊打面试官之 HTTP 协议的前世今生 1、HTTP 的基本概念 HTTP 是超文本传输协议(HyperText Transfer Protocol),下面具体解释一下: 协议:HTTP 是一个用在计算机世界里的协议,它使用计算机能够理解的语言确立了一种计算机之间交流通信的方式(两个及以上的参与者),以及相关的各种控制和错误处理方式(行为 阅读全文
posted @ 2021-10-24 14:50 Maple~ 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 一文详解 RPC 之负载均衡 为什么需要负载均衡 假设有一次流量高峰,突然发现线上服务的可用率降低了,经过排查发现是有几台机器比较旧了,当流量达到高峰时,这几台机器由于负载太高,就扛不住压力,那怎么解决这种问题呢? 首先我们可能会想到,在治理平台上调低这几台机器的权重,这样的话,流量自然就减少了。 但是这样会导致服务可用率降低, 阅读全文
posted @ 2021-10-20 23:01 Maple~ 阅读(595) 评论(0) 推荐(0) 编辑
摘要: RPC 之路由策略 为什么选择路由策略 在真实环境中,我们的服务方是以集群的方式提供服务,这对于服务调用方来说,就是一个接口会有多个服务提供方同时提供服务,所以我们的 RPC 在每次发送请求的时候,都需要从多个服务提供方里面选择一个用于发请求的节点。 既然这些节点都可以用来发送请求,那么我们就可以简单的认为这些节点是同 阅读全文
posted @ 2021-10-20 10:50 Maple~ 阅读(87) 评论(0) 推荐(0) 编辑
摘要: RPC 中为啥需要健康检测 因为有了集群,每次发送请求前,RPC 框架会根据路由和负载均衡算法选择一个具体的 IP 地址。为了保证请求成功,就需要确保每次选择出来的 IP 对应的连接是健康的。 但是调用方各个服务集群节点之间的网络状态是瞬息万变的,两者之间可能会出现闪断或者网络设备损坏等情况,那么怎么保证连接一定是可用的呢? 阅读全文
posted @ 2021-10-19 18:13 Maple~ 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 一文详解 RPC 中的注册中心 为什么需要服务发现 为了高可用,在生产环境中服务提供方都是以集群的方式对外提供服务,集群里面的这些 IP 随时可能会变化,我们需要一本“通信录”即时获取到对应的服务节点,这个获取的过程我们一般叫做“服务发现”。 对于服务调用方和服务提供方来说,其契约就是接口。服务 IP 集合作为“通信录”中的地址, 阅读全文
posted @ 2021-10-17 20:15 Maple~ 阅读(356) 评论(0) 推荐(1) 编辑
摘要: 图解 Reactor 和 Proactor Reactor Reactor 和 Proactor 是两个高性能网络模式。 Reactor 模式也叫 Dispatcher 模式,即 I/O 多路复用监听事件,收到事件后,根据事件类型分配(Dispatch)给某个进程/线程。 Reactor 模式主要由 Reactor 和处理资源池这两个核心部分 阅读全文
posted @ 2021-10-17 16:58 Maple~ 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 吊打面试官之一文详解 I/O 优化 DMA技术 在没有 DMA 技术之前,I/O过程是这样的: CPU 发出对应的指令给磁盘控制器,饭后返回。 磁盘控制器收到指令后,于是就开始准备数据,会把数据放入到磁盘控制器的内部缓冲区中,然后产生一个中断。 CPU 收到中断信号后,停下手头的工作,接着把磁盘控制器的缓冲区的数据一次一个字节地读进自 阅读全文
posted @ 2021-10-17 16:56 Maple~ 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 一文详解 select、poll、epoll select、poll 我们熟悉的 select/poll/epoll 是内核提供给用户态的多路复用系统调用,进程可以通过一个系统调用函数从内核中获取多个事件。 select/poll/epoll 是如何获取网络事件的呢?在获取事件时,先把所有连接(文件描述符)传给内核,再由内核返回产生了事件的连接 阅读全文
posted @ 2021-10-17 16:54 Maple~ 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 吊打面试官之 MySQL 中一条 SQL 语句的执行过程 前言 在平常的开发中,可能很多人都是 CRUD,对 SQL 语句的语法很熟练,但是说起一条 SQL 语句在 MySQL 中是怎么执行的却浑然不知,今天我就由浅入深,带大家一点点剖析一条 SQL 语句在 MySQL 中是怎么执行的,吊打面试官。本文主要从两个方面,查询语句和更新语句来解析。 一条 SQ 阅读全文
posted @ 2021-09-23 17:11 Maple~ 阅读(118) 评论(0) 推荐(0) 编辑