姜茶.Blog

这是一个正在成长的程序员

KVM 虚拟化

一次失败的显卡穿透经历

了解到 KVM 虚拟化技术,可以直接将宿主机的物理硬件穿透到客户机,让客户机独占硬件,所以我尝试在自己的笔记本上做实验。 场景说明: 笔记本:拯救者 Y7000P 2018版 GTX 1060(这个版本的电脑一言难尽,首先它是双显卡,电脑显示器与 Intel 核显直连,而电脑的 HDMI 接口和独显直连。这个奇怪的结构让我没办法完美安装 nvidia 驱动,我尝试了交火驱动和单独n...

NAS

SMB NFS AFP FTP

我一直有个想法:等毕业后租房子后,淘一些二手服务器、交换机、机架,自己在家里搞一个私有云,私有云需要准备一些文件存储服务器,用于支持 KVM 热迁移或者是自己的一些数据备份。 NAS 是啥 NAS (Network Attached Storage)泛指网络附加存储,也就是一个存储服务器,你的多台设备可以通过网络连接到该服务器,读取里面的文件、往里面写入文件。最理想的状态下,NAS 的文...

虚拟化

总览

虚拟化技术是云计算的基础,我们在各种云平台可以购买 IaaS(基础设施即服务) 的云服务器,包括但不局限于 ECS,VPS 等,这些云服务器可以自选配置,动态调整 cpu 核数、内存大小、甚至是硬盘大小、网卡数量等。他们底层的实现原理是虚拟化技术。 虚拟化技术的分类 根据虚拟的资源进行划分可以分为操作系统虚拟化和平台虚拟化: 操作系统虚拟化: 如果把操作系统及其提供的系统调用作为...

多线程开发

阻塞队列

阻塞队列是多线程中常用的数据结构,对于实现多线程之间的数据交换、同步等有很大作用。 阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。简而言之,阻塞队列是生产者用来存放元素、消费者获取元素的容器。 考虑下,这样一个多线程模型,程序有一个主线程 master 和一些 worker 线程,master 线程负责接收到数据,给 worker 线程...

后台开发

微服务相关的一些问题

微服务架构 背景 传统的WEB应用核心分为业务逻辑、适配器以及API或通过UI访问的WEB界面。业务逻辑定义业务流程、业务规则以及领域实体。适配器包括数据库访问组件、消息组件以及访问接口等。 通常我们把所有的模块写在同一个程序中单体打包,部署在服务器,比如对于 java 应用来说,可以打包成 jar 或者 war ,部署在 Tomcat 容器中。 这种传统方式适合于小型业务,开发快、代码集...

负载均衡

一致性哈希

一致性哈希 前面我们讲过了常见的负载均衡,但面试中常常会问到些更深层的问题,比如一致性哈希,本文我们探讨下什么是一致性哈希。 问题由来 :在使用n台缓存服务器时,一种常用的负载均衡方式是,对资源o的请求使用hash(o) mode n来映射到某一台缓存服务器。当增加或减少一台缓存服务器时这种方式可能会改变所有资源对应的hash值,也就是所有的缓存都失效了,这会使得缓存服务器大量集中地向原...

双机热备份

如何通过 keepalived 实现双机热备份

双机热备份 前文我们讲了负载均衡,通过在多个后端服务器前加设一个负载均衡服务器(Load Balancing),对接入的请求分发给后端服务器。可以实现水平扩容,提升总体服务性能的功能;还可以将少量大的宕机后端服务器剔除队列,实现冗余服务器,提高服务稳定性的作用。 这时机智的小伙伴便会提出疑问:万一负载均衡服务器宕机了怎么办? emmm,我们可以在负载均衡服务器前再加一层负载均衡服务器,...

后台开发之负载均衡

关于负载均衡,你需要知道的都在这儿

负载均衡 Load balancing 负载平衡(Load balancing)是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件和硬件来完成。 主要作用是将大量...

搞定技术面试

Unix 五种 IO 模型

Unix 五种 IO 模型 Unix 的 IO 模型有哪几种?分别是咋样的? 各种IO模型有什么特点? 阻塞和非阻塞的区别? 同步和异步的区别? epoll 为什么比较高效? IO 模型 Unix 提供了五种 IO 模型,分别是阻塞式IO、非阻塞式IO、IO复用、信号驱动式IO、异步IO。 一个IO操作通常包括两个阶段: 等待数据准备好; 从内核向进程复...

搞定技术面试

图算法相关内容

图 图的基本表示 表示一个图有两种标准方法:图邻接表和图的邻接矩阵; 邻接矩阵就是用数组(二维)表示图。具体可以看下面例子。当然,这种情况很容易造成空间浪费,所以很多人进行空间优化,甚至是邻接表的方式。 邻接表咋是数组嵌套链表,这样会比邻接矩阵省不少空间,但对无向图来说,依旧会浪费一半的空间。 在本文中,使用 G=(V,E) 表示一个图,V表示顶点,E表示边。 图的常见概念 ...