geerpc笔记 GeeRPC笔记 RPC基础知识 为什么要使用RPC?RPC有什么优点? 可以把不同功能的模块通过进程隔离开,那么就可以对这些模块进行不同的形式的变换,而且可以确保不同模块的安全和稳定。 RPC的类型 RPC根据运行模式分为静态模式和动态模式: 静态模式:预编译接口,生成存根代码stub,与应用代码编译。C++ JAVA OBJc image-20240719213225997 动态模式:依 2024-07-13 #面试
CSRF攻击 CSRF攻击 CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。 一个典型的CSRF攻击有着如下的流程: 受害者登录a.com,并保留了登录凭证(Cookie)。 攻击者引诱受害者访问了b 2024-06-15 #面试
基于Cookie-Session和基于Token的认证模式 基于Cookie、Session和基于Token的认证模式介绍 HTTP是一个无状态的协议,一次请求结束后,下次在发送服务器就不知道这个请求是谁发来的了(同一个IP不代表同一个用户),在Web应用中,用户的认证和鉴权是非常重要的一环,实践中有多种可用方案,并且各有千秋。 Cookie- Session 认证模式 在Web应用发展的初期,大部分采用基于Cookie-Session的会话管理方式,逻辑 2024-06-15
bluebell笔记 bluebell笔记 项目结构 1234567891011121314151617181920├── bin│ └── bluebell├── conf│ └── config.yaml├── static│ ├── css│ │ └── app.0afe9dae.css│ ├── favicon.ico│ ├── img│ │ ├── avatar.7b0a9 2024-06-14 #面试
CFS调度算法 CFS调度算法 CFS能在真实硬件上模拟出一种“公平的、精确的任务多处理CPU”。 公平,即对于n个正在运行的任务,当这些任务同时不断地运行时,CPU会尽可能分配给他们1/n的处理时间。CFS是一种基于加权公平排队思想的调度算法。 精确,指的是它采用红黑树作为调度的任务队列的数据结构。 简单介绍下红黑树特性: 每个结点要么是红的要么是黑的。 根结点是黑的。 每个叶结点都是黑的。 如果一个结点 2024-05-11 面试 #面试 #操作系统
OS-O(1)调度算法 操作系统-O(1)调度算法 Linux是一个支持多任务的操作系统,而多个任务之间的切换是通过 调度器 来完成,调度器 使用不同的调度算法会有不同的效果。 Linux2.4版本使用的调度算法的时间复杂度为O(n),其主要原理是通过轮询所有可运行任务列表,然后挑选一个最合适的任务运行,所以其时间复杂度与可运行任务队列的长度成正比。 而Linux2.6开始替换成名为 O(1)调度算法,顾名思义,其时间复 2024-05-11 面试 #面试 #操作系统
KV-Server记录 KV-Server记录 RPC模块 项目使用到的RPC代码高度依赖于protobuf。RPC 是一种使得分布式系统中的不同模块之间能够透明地进行远程调用的技术,使得开发者可以更方便地构建分布式系统,而不用过多关注底层通信细节,调用另一台机器的方法会表现的像调用本地的方法一样。 那么无论对外表现如何,只要设计多个主机之间的通信,必不可少的就是网络通讯这一步 我们可以看看一次RPC请求到底干了什么? 2024-04-28 #项目
raft算法 Raft算法 复制状态机 一致性算法是从复制状态机的背景下提出的(参考英文原文引用37)。在这种方法中,一组服务器上的状态机产生相同状态的副本,并且在一些机器宕掉的情况下也可以继续运行。复制状态机在分布式系统中被用于解决很多容错的问题。例如,大规模的系统中通常都有一个集群领导人,像 GFS、HDFS 和 RAMCloud,典型应用就是一个独立的复制状态机去管理领导选举和存储配置信息并且在领导人宕机 2024-04-22 面试 #面试
tensort学习记录 tensorRT学习记录 基础概念 目标检测的mAP AP & mAP AP:PR 曲线下面积 mAP:mean Average Precision, 即各类别 AP 的平均值 TP、FP、FN、TN True Positive (TP) False Positive (FP) False Negative (FN) True Negative (TN) 查准率、查全率 查准率( 2024-03-28 #面试
面试问题 面试问题 C++ C++编译生成可执行文件的顺序 预处理:在编译之前,源代码会经过预处理器的处理。预处理器执行诸如宏替换、包含头文件等操作。预处理器生成一个经过预处理的源代码文件。 编译:预处理后的源代码会被编译器编译成汇编代码(Assembly code),汇编代码是与特定架构相关的低级代码。 汇编:汇编器将汇编代码转换为机器代码(Object code),这是由二进制表示的机器可执行代码。 2024-03-11 面试 #面试