Java高可用集群架构与微服务架构分析

发表于:2019-10-31 09:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:咔咔侃技术

#
java
#
Java
  
  可能大部分读者都在想,为什么在这以 dubbo、spring cloud 为代表的微服务时代,我要还要整理这种已经“过时”高可用集群架构?
  本人工作上大部分团队都是7-15人编制的开发团队,对应的公司项目也大都是中小型项目,最大的项目 PV/UV 也就只有 10w/2w 。在这样的场景下,中小型公司一般都是创业起步没多久,大部分都需要本着“开源节流”、“以最小的成本把产出最大化”。微服务架构相比于高可用集群架构,个人理解,对于技术团队的成员编制相对要多一点,服务器部署成本相对也要高一点。
  作为技术团队负责人,肯定要为企业整体成本考虑,否则要不了多久,便是讨薪大军的一员了吧。。。
  一、如何选择
  1、高可用集群
  适用于中小型创业公司项目架构,小型技术团队快速迭代版本发布部署需求,前期低成本运行,爆发时可通过投入适量成本横向扩容服务器抗压。
  特点:
  前期技术开发成本低
  一定的服务器扩容成本
  核心团队编制及技能要求较少
  项目发布部署基本无依赖,时间成本低
  服务器运维成本一般
  大而全的项目模块分离设计
  更省更稳的技术架构选择
  微服务架构强迫症不适用
  2、微服务架构
  适用于业务架构较大的中大型科技公司项目架构,系统可拆分多个项目单独运营,大型技术团队、平台产品规范化管理,前期投入一定的成本,可以低成本扩容指定服务的服务器抗压。
  前期一定的技术开发成本
  较低的服务器扩容成本
  核心团队编制及技能要求较高
  项目发布部署存在依赖,逐个部署,时间成本较高
  服务器运维成本一般或较高
  较清晰的项目模块分离设计
  更潮更时尚的技术架构选择
  二、高可用集群架构
  1、必备服务器清单
  负载均衡服务器
  web项目服务器
  缓存服务器
  数据库服务器(主备)
  注意:可能有人会问,若是小型项目单机服务,负载均衡是否就不需要?负载均衡主要工作是分发请求到源服务器,另一个作用也是为了保护源服务器,不暴露服务器真实IP,大幅度降低服务器被DDoS攻击的风险,可参考《被人DDoS攻击了,分析一下原理和防护》 一文。
  2、扩展服务器清单
  更多web项目服务器(集群负载)
  异步服务服务器(配置中心、消息队列、job任务等)
  数据库服务器(读写分离、主从复制)
  文件服务器
  2、架构图
  
  三、微服务架构
  1、服务器清单
  dubbo / spring cloud 全家桶组件服务器
  负载均衡服务器
  A模块 web项目服务器
  B模块 web项目服务器
  C模块 web项目服务器
  XXX模块 web项目服务器
  缓存服务器
  数据库服务器
  文件服务器
  异步服务服务器(配置中心、消息队列、job任务等)
  2、架构图
 
  四、总结
  综上,我们对于高可用集群和微服务架构做了简单的场景和架构图分析,并不是说什么场景下一定要用什么架构,也不是说什么最潮流就用什么架构,而是根据实际成本和产出作为出发点做选择。
  创业公司刚起步,资金可能也就百来万,搞微服务架构,光技术团队和服务器一个月的成本就占了公司一大头,产品还没上线,公司就已经倒闭了;
  有资源的公司,动不动就能获得千万级甚至更高级别的融资,业务方向众多,若还只是用高可用架构,所有的业务模块都臃肿在一个项目里,不论是代码管理还是人员管理上,都是巨大的资源消耗。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • wphisme
    2019-10-31 10:18:30

    哈哈

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号