ℹ️ 备注:
数据库以 MySQL 为例.
ℹ️ 备注:3.3 制造业系统的推荐高可用架构
通过更加细化和细致的分层, 也可以提高可用性. 如将以上架构细化为:
本文暂不涉及这一内容.
- 客户端层;
- 可选新增: 反向代理层
- 可选新增: 表示层(Web Server)层
- 应用服务层(App Server)层
- 可选新增: 服务调用层
- 可选新增: 缓存层
- 数据库层
ℹ️ 说明:高可用方案调整说明如下:
- 实线 : 请求调用
- 点+横线: 心跳检测
- 点虚线: 尚未真实发生的请求调用
- 短横虚线: 数据库主从同步
- "X" - 对应节点宕机不可用.
ℹ️ 备注:下面逐一进行分层论述.
上图中, 也画出了高可用的另一种实施方案, 本文不做详细讨论:
除此之外, 还可以根据实际业务情况进一步将数据库进行拆分, 本文亦不做详细讨论:
- 应用横向拆分: 单体应用(monolithic application)根据重要性进行拆分, 将重要性高的服务和重要性低的服务进行拆分, 单独部署.
- 重要性高的应用, 如低延迟类应用, 流水线上应用等;
- 重要性低的应用, 如高延迟类应用, 报表应用等.
- 数据库拆为 2 个库, 其中一个库通过数据同步从另一个库定时(实时或非实时)同步数据. 举例说明: 业务库, 报表库. (业务库定期同步数据给报表库)
- 重要性高的应用, 读取写入业务库;
- 重要性低的应用. 如报表类应用. 不允许使用业务库, 而是使用报表库.
ℹ️ 知识点:当应用服务层 其中一个节点宕机的时候, nginx 能够探测到, 会自动进行故障转移, 不会将流量分发到发生故障的节点, 而是分发到其他的正常应用服务器节点, 整个过程由 NGINX 自动完成, 对调用方透明.
在 NGINX 开源版本中, 如果不使用第三方插件,NGINX 的存活探测为: 被动探测.
ℹ️ 备注:3.6.1 读库高可用
由于制造业采用了多种数据库, 包括但不限于:
不同数据库的高可用解决方案并不完全相同, 所以本文不对数据库的具体高可用技术做细节描述. 只进行理论论述.(以 MySQL 为例)
- Oracle
- SQL Server
- MySQL
常见的数据库高可用方案有:
- MySQL: 主从同步;
- Oracle: RAC
- SQL Server: Alwayon
ℹ️ 备注:3.6.2 写库高可用
需要应用系统或中间件的数据库连接层实现数据库连接池功能.
ℹ️ 定义及概述:选型过程概述
在分布式系统中,负载均衡(load balance)是一种有效的将网络请求分配到多个服务器的过程。通过将负载进行负载均衡,可以有效地改进系统响应时间,提高系统的可用性。随着系统变的愈发复杂,用户增多和网络流量增大,负载均衡已经成为系统设计中的必要一环。
负载均衡器可以是硬件也可以是软件,它会将网络请求分发到服务器集群上。
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |