架构扩展问题

x33g5p2x  于2021-12-16 转载在 其他  
字(0.8k)|赞(0)|评价(0)|浏览(504)

一 部署扩展

1 新老服务隔离

当服务难以支撑当前的用户级别时,采用的方式是复制一份和当前部署一模一样的服务,并且与现有服务隔离。新增流量和已有流量是隔离的,互不干扰,相对于两个平行世界。

新老服务隔离在游戏类业务中使用较多,在存储类场景中也得也比较多。例如移动电话号码、QQ的号段等。这种ID 天然具有唯一性,并且数字化的主键最适合按号段扩展。

2 新老服务混用

一般用于逻辑中间层或接口层。当现有流量不够时,直接添加新的模块,扩充访问能力。大多数的时候都不需要客户端做特殊处理,看到的入口还是和已有的一样,一般用于无状态的服务扩展中。

3 新老服务隔离、混用兼具

在大型项目中,上面两种类型是混用的,在接入层和逻辑层使用混用的方式,利用负载均衡把机器加入已有的集群。

二 升级扩展

1 对外给予整合信息的接口,屏蔽底层细节

对外给予的接口,只需要外部提供最需要的信息即可,其他都由系统内部进行整合和推算,不要向外部暴露太多细节。

2 保证接口具有区分版本的能力

随着服务的升级,接口需要的参数也会增加。对于不同版本的客户端,同样一个接口,需要提供不同版本的服务。

3 调用方动态获取容易变化的部分

例如,客户端访问服务器的IP地址,要通过动态方式获取,在服务端进行升级的时候,能够让客户端无感知。

三 set模型

set 化是把多台服务器组合成一起,看起来类似一台性能特别强的服务器,让它们形成一个小集合,部署一整套对外服务。set 模型是为了弥补单机能力不足,对业务组合搭配的一个最小单元。通过 set 模型,能够让多个物理服务器或逻辑进程绑定在一起,对外看起来像一个进程一台机器服务一样。

1 未使用 set 化部署

三种进程间调用跨机房访问。

2 使用 set 化部署

三种进程在同一机房内完成业务,没有跨机房,采用 set 化,便于业务异地伸缩部署,容量规模扩展,自动部署。

相关文章