IO模型和NIO 一个程序执行超越本程序之外的功能,就会涉及到操作系统用户态到核心态的切换。那什么是本程序范围内的功能呢?例如:计算,内存访问,函数调用等就属于范围内的功能。那么结合本文要说的I/O操作,如果一个程序要进行I/O操作,例如:微信网络传输一个文件,Adobe加载本地一个文件等,都会涉及操作系统用户态到核心态的切换。所以I/O模型的核心确实是内核空间与用户空间之间的数据交互方式问题。 2025-03-26 Netty #Netty #NIO
分布式共识及算法 分布式系统中充满了各种潜在的错误场景,网络数据包可能丢失、顺序紊乱、重复发送或者延迟,节点还可能宕机。“在充满不确定性的环境中,就某个决策达成共识”是软件工程领域最具挑战性的问题之一。 什么是共识在分布式系统中,节点故障不可避免,但部分节点故障不应该影响系统整体状态。通过增加节点数量,依据“少数服从多数”原则,只要多数节点(至少 N/2+1N/2+1)达成一致,其状态即可代 2024-12-26 分布式系统原理设计 #共识算法 #Raft
数据一致性和分布式事务 数据一致性 引入事务的目的,是为了保证数据的“一致性”(Consistency)。 何为一致性,例如:处理一个转账业务,其中 A 向 B 转账 ¥50 元。无论是转账前、转账过程中、还是转账完成后,A 和 B 的总金额要求始终保持不变。这意味着数据在整个过程中都保持一致,符合业务约束。 想要达成数据的一致性,需要 3 个方面的努力: 原子性(Atomic): 客户端发起一个请求(请求包含多个操 2024-12-26 分布式系统原理设计 #分布式事务 #数据一致性
一篇吃透WebSocket WebSocket 诞生背景早期,很多网站为了实现推送技术,所用的技术都是轮询 。轮询是指由浏览器每隔一段时间向服务器发出 HTTP 请求,然后服务器返回最新的数据给客户端。 常见的轮询方式分为短轮询与长轮询,它们的区别如下图所示: 短轮训:客户端定期发送请求,服务器立即响应(无论有无数据),请求频率固定,资源消耗较大。 长轮训:请求挂起等待数据,服务器有数据才响应,减少无效请求,实时性较 2024-12-19 网络协议 #WebSocket #网络协议
OpenWrt定时备份服务器 安装 &配置 OpenSSH默认 OpenWrt 软件源中包含 OpenSSH,可以通过以下命令安装: 1234opkg updateopkg install openssh-server 如果需要客户端工具(例如 ssh 和 ssh-keygen),可以额外安装: 123opkg install openssh-client 安装完成后,需要对 OpenSSH 进行初步配置。 123 2024-12-08 OpenWrt #rsync
Hysteria携手Warp 背景众所周知,RackNerd 家的机器胜在便宜,带宽和流量的便宜的就像不要钱一样。线路中规中矩吧,都这么便宜了,也不能要求什么(你不嫌我穷,我也不嫌你垃)。 一直好好用了半年,最近出现了几个问题:首先,登陆网站一直跳谷歌验证码(对,就那个消防栓和公交车,啊啊啊 我人麻了);其次,因为我有RSS阅读的习惯,订阅里面有一些Yb上的视频就没法在不登陆的状态下看了,这让我很头疼;最后就是,OpenAI无 2024-12-08 VPS #vps
安装docker和Nginx-Proxy-Manager 升级 packages12345sudo -i # 切换到 root 用户apt update -y # 升级 packagesapt install wget curl sudo vim git -y # Debian 系统比较干净,安装常用的软件 安装docker 海外服务器安装 1wget -qO- get.docker.com | bash 国内服务器安装 1curl -sS 2024-12-08 VPS #docker #nginx
DD系统-服务器安全保护设置 DD系统基本所有的VPS商家,都会提供免费的Linux系统供安装,如CentOS、Debian、Ubuntu等。那为什么还要使用一键DD脚本重装/更换系统呢? 原因大概有这么几点: 商家提供的系统版本有限,可能没有自己需要的版本(如HostHatch只有CentOS只有7,Debian只有9、10); 商家提供的系统大多都是改装过的,不纯净(如良心云、套路云服务器自带云镜、云盾等监控) 2024-12-08 VPS #vps