高级高可用性与可扩展性技术解析
1. 分片架构概念
分片架构是一种拥有众多节点的架构模式。在这种架构里,部分或全部节点会存有冗余数据,每个节点都有独特的令牌。这些令牌用于分割整个数据,实现对数据库的读写操作。
以社交网络应用为例,系统里存在大量用户和众多用户操作。若要设计令牌,可以依据用户姓名的首字母,按字母表将用户划分到不同节点。比如,名字首字母为 A - H 的用户请求和数据由一组节点或节点集群处理,I - Q 的由另一组处理,依此类推。这种方式假定事务和数据能大致均匀地分布在各个节点或节点集群上,这样只需一次性管理单个节点或单个节点集群的可扩展性。你可以根据应用需求设计节点或集群的数量,进而确定节点(或分区)数量以及相应的令牌。
分片不仅可用于数据层,还能应用于微服务层。此时,弹性负载均衡器(ELB)需具备一定智能,以便将请求路由到合适的微服务实例。
2. 架构选择思考
此前看到的数据库解决方案各有其适用场景,是否采用这些方案需要综合多方面因素,包括企业的长期技术战略。我们一直强调多语言(数据)架构的重要性,以及每个微服务应完全管理自身数据。因此,我们需要思考一些架构,它们能提供类似的可扩展性和可用性,同时不过度依赖特定供应商的昂贵技术栈。
微服务架构可将系统按功能拆分成多个独立部分,便于独立管理各部分的可用性和可扩展性。分片则能进一步处理大量数据。此外,还可将读写操作分离,第 12 章介绍的命令查询职责分离(CQRS)模式就适用于此。合理运用这些原则有助于实现网络级别的扩展。
高可用与可扩展架构解析
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



