记一次”高可用“分布式服务环境搭建

背景

前不久开发了一款文档相关的服务,服务设计文档的生成以及显示,上线一段时间后,有人居然反映处理能力达不到他们的要求!!根据我们的测试结果,满足50人同时使用是没有问题的,客户就是上帝,赶紧提升服务能力。

方案构思

如何提高生成能力以及如何实现高可用的生成与展示是个问题!首先对现有的过程进行分析。

现有的流程分析

文档的生成流程:

  • 用户在B端上传指定的材料
  • S段处理请求,把结果save 到server本地
  • B端发送展示请求,S端把相关材料返回到B
    简单的流程如下图所示:
    在这里插入图片描述
    用户说服务能力不够,也就是说有很多的用户在同一时间发送转化请求,我的server处理不过来了。我需要做的是增加服务节点,让多个server 处理请求,这就是需要分布式的方法。但是这样会存在一个问题
  • 为了展示的时候能够快速响应,我把数据存在了server本地,分布式方法如何保证我可以从生成文件的地方访问生成的文件?
  • 如果一台生成的机器挂了,还可以访问到它生成的文件吗?
  • 如何做到高可用,有一台活着就能提供正常服务
方案

整体的方案:
启动多个server ,采用负载均衡方式连接这些服务,挂一个统一数据库

  • 微服务方案
  • nginx 方案
    客户的紧急需求决定了我只能采取nginx 方案,代码修改少,交付快。整体的结构图如下所示:
    在这里插入图片描述
    客户端通过代理访问对服务进行轮询,服务转完后把数据在统一数据库中进行备份,如果访问的时候,会加上服务的id 号码,如果在显示的时候健康检测没通过,则会把请求转发到其他服务,其他服务如果没有这个文件,则会从统一数据库中拉去,这样的话就基本做到了高可用,数据库的方式也是采用了集群部署的对象存储。实现起来也比较快
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值