关于分布式集群的搭建

前言

如果自己购买服务器搭建分布式集群, 虽然流程繁琐, 但是成本相对可控, 不过所需服务器的数量不少, 至少7台起步, 运维压力还是有的

今天本着学习的目的, 来探讨一下搭建分布式集群的些事

服务器数量估算

针对单体应用

  • 两台服务器: 用作负载均衡
  • 两台以上服务器: 用于应用业务处理
  • 三台服务器: 其中两台用于数据库集群一主一从结构, 另外一台用作监控服务器, 出现故障时自动切换

也就是总共至少七台服务器 可实现了基础的分布式集群架构

针对微服务架构应用

  • 两台服务器: 用作负载均衡(API网关集群)
  • 十台服务器: 微服务两个组件起步, 每个微服务至少配置两台应用服务器和三台数据库服务器(一主一从一仲裁)
  • 三台服务器: 用作服务注册中心

微服务架构, 至少需要15台服务器

从单体应用改成微服务架构 服务器数据暴增 主要集中在数据库和应用上

使用托管方案

如果嫌自己购买服务器搭建集群麻烦, 那么单体应用可以考虑使用现成的高可用分布式集群全托管方案 比如阿里云SAE/ECI

它内置了负载均衡器和应用集群,我们只需要再购置一台云数据库(内含主从复制机制),然后上传开发好的程序即可

如此一来,可以大大减少运维消耗,把更多精力集中在应用本身 这是省时省力的做法

微服务架构同样也可以使用SAE来托管 除了该方案外,还有一些自由度更高的方案,比如MSE

问题汇总

  1. 有必要给每个微服务设置独立的负载均衡器吗?

    给每个微服务都配置独立的负载均衡器是传统单体架构思维的延伸,它不仅会造成巨大的资源浪费和成本飙升,更会带来运维噩梦。微服务架构通过 统一入口服务发现 机制,优雅地解决了这个问题。

    下面我通过一张图来对比两种模式的根本区别:

  2. 为了节省成本 是否可以将API网关和注册中心共用在两台服务器上?

    首先, 我们来看一下两种方案的对比图:

    除非是测试环境 或者想快速验证想法 否则 必须将API网关和注册中心分开部署, 尤其是生产环境,两台服务器部署网关+三台服务器部署注册中心是个可靠的选择

  3. 关于服务器系统的选择

    负载均衡器和数据库服务器选择CentOS,以获得最高的稳定性,应用服务器可以选择ubuntu以或者更新的软件版本

    以下是最小化配置参考, 用于项目起步阶段:

    • 两台负载均衡服务器: 系统选择centos+硬盘50g+弹性公网ip
    • 两台应用服务器: 系统选择ubuntu+硬盘80g+nat网关只进不出
    • 三台数据库: 系统选择centos+硬盘100g+完全内网 无需公网ip

成本估算

这里以一次性购买五年为例, 做一个费用估算:

  • 全托管方案: 阿里云SEA 两实例 2核2g每月600万cu消耗 折后资源包, 五年10000+数据库1核2g 硬盘80g 6600元=16600元

  • 半托管方案: 阿里云负载均衡器3504元+五台ecs5075元+带宽流量包最低450最高2100元=9029-10679元

  • 自建方案一: 七台ecs 7175元+按流量计费弹性ip+流量包450-2100=7625-9275元

  • 自建方案二: 七台ecs 7175元+2M固定带宽弹性ip1380元=8558元

  • 自建方案三: 使用DNS负载均衡, 两台各带1M带宽ecs 3653元+五台ecs 5075元=8728元

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%