高可用架构 学习笔记(第 8 部分)
4.2 技术栈对比
4.2.1 应用层
集群架构技术:
code
集群架构应用层:
系统层面
├── Unix/Linux 集群
├── Windows Server 集群
└── 虚拟机集群
容器编排
├── Docker Swarm
├── Kubernetes (单集群)
└── Mesos
负载均衡
├── Nginx
├── HAProxy
└── F5分布式架构技术:
code
分布式架构应用层:
容器编排
├── Kubernetes (多集群)
├── Istio (服务网格)
└── Consul (服务发现)
微服务框架
├── Spring Cloud
├── Dubbo
├── gRPC
└── GraphQL
API 网关
├── Kong
├── Zuul
└── APISIX4.2.2 中间件层
集群架构中间件:
javascript
const clusterMiddleware = {
// Web 服务器
webServer: {
nginx: '负载均衡、反向代理',
tomcat: 'Java 应用服务器',
weblogic: '企业级应用服务器',
websphere: 'IBM 应用服务器'
},
// 消息队列
mq: {
activemq: 'JMS 规范实现',
rabbitmq: 'AMQP 协议'
},
// 缓存
cache: {
redis: '单机/主从 Redis',
memcached: '分布式缓存'
}
}分布式架构中间件:
javascript
const distributedMiddleware = {
// 消息队列
mq: {
kafka: '高吞吐量、分布式',
rocketmq: '阿里开源、事务消息',
pulsar: '云原生、多租户'
},
// 缓存
cache: {
redisCluster: 'Redis 集群',
codis: 'Redis 代理集群',
twemproxy: 'Redis/Memcached 代理'
},
// 协调服务
coordination: {
zookeeper: '分布式协调',
etcd: 'Kubernetes 存储',
consul: '服务发现、配置中心'
},
// 分布式事务
transaction: {
seata: '阿里分布式事务',
dtm: 'Go 分布式事务'
}
}4.2.3 数据层
集群架构数据层:
code
集群架构数据层:
数据库集群
├── MySQL 主从复制
├── Oracle RAC
└── SQL Server AlwaysOn
存储
├── SAN (存储区域网络)
├── NAS (网络附加存储)
└── RAID 磁盘阵列分布式架构数据层:
code
分布式架构数据层:
分布式数据库
├── TiDB (NewSQL)
├── OceanBase (阿里)
├── CockroachDB
└── MongoDB (分片)
分布式存储
├── HDFS
├── Ceph
├── MinIO
└── 对象存储 (S3/OSS)