本文从目的、前提、边界、治理四个方面阐述技术方法论。
架构设计 透明多级分流系统
奥卡姆剃刀原则
Entities should not be multiplied without necessity
如无必要,勿增实体
Git 使用方法
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,它是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
RPC gRPC异常处理流程设计
封装 gRPC 调用异常处理的流程。
架构设计 MessageQueue方案
Message Queue 从最初的架构设计到现在的贴近云原生的架构风格已经演进的非常成熟,本文通过将 RocketMQ、Kafka、Pulsar 进行对比来整理当下 MQ 中间件对于存储、通信的实现。
Kubernetes 架构理念
容器编排(Container orchestration)提供了一个开放有影响力的模型,包含打包(packaging)、发布(deployment)、隔离(isolation)、服务发现(service discovery)、伸缩(scaling)和滚动更新(rolling upgrades)。
Linux Network Bridge
Bridge 是一个虚拟网络设备,所以具有网络设备的特征,可以配置 IP、MAC 地址等;其次,Bridge 是一个虚拟交换机,和物理交换机有类似的功能。对于普通的网络设备来说,只有两端,从一端进来的数据会从另一端出去,如物理网卡从外面网络中收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外面的物理网络中。而 Bridge 不同,Bridge 有多个端口,数据可以从任何端口进来,进来之后从哪个口出去和物理交换机的原理差不多,要看 MAC 地址。
Linux Network Veth Peer
Veth Peer 是成对出现的一种虚拟网络设备接口,一端连着网络协议栈,一端彼此相连。由于它的这个特性,常常被用于构建虚拟网络拓扑。例如连接两个不同的网络命名空间(netns),连接 docker 容器,连接网桥(Bridge)等,其中一个很常见的案例就是 OpenStack Neutron 底层用它来构建非常复杂的网络拓扑。
Linux Network Package传输
CS 虚拟内存
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如 Windows 家族的“虚拟内存”;Linux 的“交换空间”等。