读发布!设计与部署稳定的分布式系统(第2版)笔记18_基础层之联网

1. 面向恢复的计算

1.1. ROC,recovery-oriented computing

1.2. 加州大学伯克利分校和斯坦福大学的联合研究项目

1.2.1. 其大部分工作致力于消除系统失效的根源,但也承认系统失效不可避免

1.2.2. 旨在提高系统面临失效时的生存能力

1.3. 创始原则

1.3.1. 无论在硬件方面还是软件方面,失效都是不可避免的

1.3.2. 建模和分析永远都不会足够完备,用推导的方法预测所有系统失效方式是不可能的

1.3.3. 人的行为是系统失效的主要原因

1.4. 如果在每次配置更改后,都必须重新启动那些服务器,则无法恢复服务

1.5. 重启组件而不是重启整台服务器的能力,是面向恢复的计算的一个关键概念

1.5.1. 在不重启所有服务器的情况下恢复服务

1.5.2. 花费超过6小时的时间来完成所有服务器的重启

1.5.3. 仅仅动态重新配置和重启连接池这件事,只需不到5分钟的时间

2. 为生产环境而设计

2.1. 将在生产环境中发现的问题视为头等大事

2.2. 为执行运维操作的人们而设计

2.3. 图示

3. 基础层

3.1. 了解系统的物理基础设施

3.2. 系统所有其他部分所依赖的机器和电缆

3.3. 厘清有关网络、主机名和IP地址之类的事情

3.4. 考虑持有代码的那些设备:物理主机、虚拟机和容器等

3.5. 当系统跨越多个数据中心时会出现的一些特殊问题

4. 数据中心和云端的联网

4.1. 相比桌面网络,包含更多冗余和安全性建设

4.2. 联网时最大的误解就是机器的主机名

4.3. 主机名可以用两种方式来定义

4.3.1. 主机名是操作系统用来识别自身的名字

4.3.1.1. 机器的管理员可以设置该主机名和“默认搜索域”,将主机名和搜索域拼接在一起就构成了FQDN(全限定域名)

4.3.1.2. 即在运行hostname命令时所看到的内容

4.3.2. 系统的外部名字

4.3.2.1. 其他计算机希望使用这样的主机名连接到目标机器

4.3.3. 无法保证机器自身的FQDN与DNS为该机器的IP地址所提供的FQDN相匹配

4.4. 两个定义的根本区别

4.4.1. 机器使用其主机名标识整个机器

4.4.2. DNS名字仅用来标识IP地址,多个DNS名字可以被解析为同一个IP地址

4.4.3. 对负载均衡服务来说,一个DNS名字也可以被解析为多个IP地址,这意味着“DNS名字到IP地址”是一种“多对多”的关系

4.4.4. 许多实用程序和应用程序都假定机器自分配的FQDN是合法的DNS名字,解析后不会发生改变

4.4.4.1. 对开发机器来说基本上是正确的,但对生产环境的服务来说一般是错误的

4.5. 多网卡的多对多的关系

4.5.1. 一台机器可能有多个网卡

4.5.2. 每个网卡可以连接到不同的网络,每个活动的网卡能在其特定网络上获取IP地址,这被称为多宿主(multihoming)

4.5.3. 数据中心中的每台服务器一般都是多宿主的

4.5.4. 不知道存在多个网络接口的应用程序,最终就容易接受来自错误网络的连接

5. 备份操作

5.1. 会以突发的方式传输巨量的数据

5.2. 如果备份发生在生产环境网络上就会堵塞网络

5.3. 良好的数据中心网络设计,是将备份用的数据流量分流到其专用的网段上

5.3.1. 由单独的交换机处理

5.3.2. 由生产环境交换机上的单独虚拟局域网处理

5.4. 备份流量从生产环境网络中分离出来后,当执行备份操作时,应用程序用户不会因此受到影响

6. 多网络编程

6.1. 默认情况下,监听一个套接字的应用程序,会监听所有网络接口上的连接请求

6.2. 编程语言库总是有一个“简单”的套接字监听版本,这个“简单”版本只是在主机的每个网络接口上打开一个套接字

6.3. 在生产环境中配置多个网络接口的另一种常见方法,是绑定或分组

6.4. 要确定绑定的网络接口,必须提供应用程序的名字或IP地址

6.5. 需要在套接字上监听的服务器应用程序,必须添加可配置的属性来定义服务器应绑定的网络接口

6.6. 应用程序还必须指定发出流量的网络接口

6.6.1. 数据可以通过多条路由,流经目标IP地址所属的不同网卡,并到达同一个目的地

posted @ 2023-07-04 06:27  躺柒  阅读(64)  评论(0编辑  收藏  举报