RPC RPCRPC(Remote Procedure Call) 即远程过程调用,通过名字我们就能看出 RPC 关注的是远程调用而非本地调用。 为什么要 RPC ? 因为,两个不同的服务器上的服务提供的方法不在一个内存空间,所以,需要通过网络编程才能传递方法调用所需要的参数。并且,方法调用的结果也需要通过网络编程来接收。但是,如果我们自己手动网络编程来实现这个调用过程的话工作量是非常大的,因为,我们需要 2024-04-20 微服务 #微服务
Docker 什么是容器?一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软件适用于基于 Linux 和 Windows 的应用,在任何环境中都能够始终如一地运行。 容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在 2024-04-18 开发工具 > Docker #Docker
MySQL数据分离 读写分离见名思意,根据读写分离的名字,我们就可以知道:读写分离主要是为了将对数据库的读写操作分散到不同的数据库节点上。 这样的话,就能够小幅提升写性能,大幅提升读性能。 一般情况下,我们都会选择一主多从,也就是一台主数据库负责写,其他的从数据库负责读。主库和从库之间会进行数据同步,以保证从库中数据的准确性。这样的架构实现起来比较简单,并且也符合系统的写少读多的特点。 如何实现读写分离?不论是使 2024-04-16 数据库 > MySQL #MySQL
求根节点到叶子节点的数字之和 129. 求根节点到叶节点数字之和给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。 叶节点 是指没有子节点的节点。 示例 1: 123456输入:root = [1,2,3]输出 2024-04-16 算法 > 二叉树 #算法
MySQL分库分表 MySQL分库分表什么是分库?分库 就是将数据库中的数据分散到不同的数据库上,可以垂直分库,也可以水平分库。 垂直分库 就是把单一数据库按照业务进行划分,不同的业务使用不同的数据库,进而将一个数据库的压力分担到多个数据库。 举个例子:说你将数据库中的用户表、订单表和商品表分别单独拆分为用户数据库、订单数据库和商品数据库。 水平分库 是把同一个表按一定规则拆分到不同的数据库中,每个库可以位于不同 2024-04-14 数据库 > MySQL #MySQL
MySQL字符集 字符集详解MySQL 字符编码集中有两套 UTF-8 编码实现:**utf8** 和 **utf8mb4**。 如果使用 utf8 的话,存储 emoji 符号和一些比较复杂的汉字、繁体字就会出错。 字符集是什么?字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。 字符集 就是一系列字符的集合。字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表 2024-04-13 数据库 > MySQL #MySQL
合并K个有序链表 123. 合并 K 个升序链表给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 12345678910输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序 2024-04-13 算法 > 经典 #算法
K个一组翻转链表 1525. K 个一组翻转链表给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例 1: 12输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5] 示例 2024-04-13 算法 > 经典 #算法
LRU缓存 146. LRU 缓存请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 2024-04-13 算法 > 经典 #算法
Git GitGit是一种分布式版本控制系统,它的原理和工作流程如下: 原理: 分布式版本控制系统:Git使用分布式的版本控制系统,每个开发者都有一个完整的代码仓库的副本,不依赖于中央服务器。 快照:Git不保存文件的变化差异,而是保存文件在不同版本中的快照。每次提交都会生成一个快照,包含了当前工作目录的所有文件状态。 三层架构:Git的数据存储分为三层:工作目录、暂存区(Index)、仓库(Repos 2024-04-12 开发工具 > Git #Git