分类目录归档:架构arch

探索CPU的调度原理

软件工程师们总习惯把OS(Operating System,操作系统)当成是一个非常值得信赖的管家,我们只管把程序托管到OS上运行,却很少深入了解操作系统的运行原理。确实,OS作为一个通用的软件系统,在大多数的场景下都表现得足够的优秀。但仍会有一些特殊的场景,需要我们对OS进行各项调优,才能让业务系统更高效地完成任务。这就要求我们必须深入了解OS的原理,不仅仅只会使唤这个管家,还能懂得如何让管家做得更好。本文主要探索其中的冰山一角:CPU的调度原理。 阅读全文

eBPF—使用符号表offset探测函数调用

上一次,我们通过uprobe实现一个对用户空间自定义程序的特定函数出入口进行代码注入和探测的方法,但它还有很多不完善的地方,比如需要提前准备好编译后的函数符号,同时生产环境产出通常也不带符号、产出的部署位置通常也不固定,给我们在实际场景中使用带来不便。本文就讲解下如何通过导出符号表、产出去符号,通过符号表的offset、类函数名、进程PID来进行用户自定义函数调用的探测,从而更方便直接在生产环境使用。 阅读全文

eBPF—使用uprobe探测用户程序函数调用

上一次,我们通过kprobe实现一个简单的内核系统调用捕获,了解了如何在内核函数的出入口动态注入自定义代码,并通过ring buffer传递到用户空间。今天,我开始带大家通过uprobe实现一个对用户空间自定义程序的特定函数出入口进行代码注入和探测的方法。 阅读全文

分布式实时通信—DDS概述

DDS最早应用在美国海军系统,目前已广泛应用于军工、机器人、自动驾驶等领域,国际主流军工厂商、ROS2操作系统等均将DDS作为其控制系统的核心中间件,为各类战舰、机器人等提供可靠、高实时的分布式通信功能。今天就带大家一起了解一下。 阅读全文

Redis主从复制原理及其演变

Redis 的主从复制经历了多次演化,本文将从最基本的原理和实现讲起,并根据其版本迭代过程,逐步呈现其主从复制的演化,让大家了解到 Redis 主从复制的原理,以及各个改进版本解决了什么问题,最终看到 Redis 7.0 主从复制的全貌。 阅读全文

如何搭建高可用Web集群

前段时间有同学问我一个高可用集群到底是怎么建设的,这是一个比较广泛的话题,首先要清楚到底什么叫『高可用集群』;其次,常见的集群又分很多种,例如WEB集群、DB集群、大数据集群等,他们既有相似的地方,又因应用场景不同导致集群架构设计上有所不同。本文先简要介绍下『一个典型的Web集群是如何从普通的单点服务一步一步演变为一个高可用集群的』。 阅读全文

小猪教你实施CA证书双向认证

CA单向认证常用于https数据传输加密,避免在传输过程中被嗅探和篡改。而CA双向认证则更多的用于高安全场景的身份识别,它为每个client签发的证书内包含了各client的身份(例如银行证书的用户身份证号、车辆证书的车架号等),server在client请求时双向认证对方的证书有效性,同时server从有效client公钥中提取对方身份并与请求参数中的身份进行对比检查,以完成client身份的安全鉴别。下边简单介绍下CA证书双向认证原理和实施方法。 阅读全文