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

前言

可能大部分读者都在想,为何在这以 dubbo、spring cloud 为表明的微服务时代,我要还要整理这种已经“过期”高可用集群架构?html

本人工做上大部分团队都是7-15人编制的开发团队,对应的公司项目也大都是中小型项目,最大的项目 PV/UV 也就只有 10w/2w 。在这样的场景下,中小型公司通常都是创业起步没多久,大部分都须要本着“开源节流”、“以最小的成本把产出最大化”。微服务架构相比于高可用集群架构,我的理解,对于技术团队的成员编制相对要多一点,服务器部署成本相对也要高一点。web

做为技术团队负责人,确定要为企业总体成本考虑,不然要不了多久,即是讨薪大军的一员了吧。。。spring

1、如何选择

一、高可用集群

适用于中小型创业公司项目架构,小型技术团队快速迭代版本发布部署需求,前期低成本运行,爆发时可经过投入适量成本横向扩容服务器抗压。数据库

特色:缓存

  • 前期技术开发成本低
  • 必定的服务器扩容成本
  • 核心团队编制及技能要求较少
  • 项目发布部署基本无依赖,时间成本低
  • 服务器运维成本通常
  • 大而全的项目模块分离设计
  • 更省更稳的技术架构选择
  • 微服务架构强迫症不适用

二、微服务架构

适用于业务架构较大的中大型科技公司项目架构,系统可拆分多个项目单独运营,大型技术团队、平台产品规范化管理,前期投入必定的成本,能够低成本扩容指定服务的服务器抗压。服务器

  • 前期必定的技术开发成本
  • 较低的服务器扩容成本
  • 核心团队编制及技能要求较高
  • 项目发布部署存在依赖,逐个部署,时间成本较高
  • 服务器运维成本通常或较高
  • 较清晰的项目模块分离设计
  • 更潮更时尚的技术架构选择

2、高可用集群架构

一、必备服务器清单

  • 负载均衡服务器
  • web项目服务器
  • 缓存服务器
  • 数据库服务器(主备)

注意:可能有人会问,如果小型项目单机服务,负载均衡是否就不须要?负载均衡主要工做是分发请求到源服务器,另外一个做用也是为了保护源服务器,不暴露服务器真实IP,大幅度下降服务器被DDoS袭击的风险架构

二、扩展服务器清单

  • 更多web项目服务器(集群负载)
  • 异步服务服务器(配置中心、消息队列、job任务等)
  • 数据库服务器(读写分离、主从复制)
  • 文件服务器

二、架构图

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

3、微服务架构

一、服务器清单

  • dubbo / spring cloud 全家桶组件服务器
  • 负载均衡服务器
  • A模块 web项目服务器
  • B模块 web项目服务器
  • C模块 web项目服务器
  • XXX模块 web项目服务器
  • 缓存服务器
  • 数据库服务器
  • 文件服务器
  • 异步服务服务器(配置中心、消息队列、job任务等)

二、架构图

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

注:图片来源 http://yun.itheima.com/open/217.html负载均衡

4、总结

综上,咱们对于高可用集群和微服务架构作了简单的场景和架构图分析,并非说什么场景下必定要用什么架构,也不是说什么最潮流就用什么架构,而是根据实际成本和产出做为出发点作选择。运维

创业公司刚起步,资金可能也就百来万,搞微服务架构,光技术团队和服务器一个月的成本就占了公司一大头,产品还没上线,公司就已经倒闭了;异步

有资源的公司,动不动就能得到千万级甚至更高级别的融资,业务方向众多,若还只是用高可用架构,全部的业务模块都臃肿在一个项目里,不管是代码管理仍是人员管理上,都是巨大的资源消耗。

相关文章
相关标签/搜索