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

2023-11-01

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

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

作为技术团队负责人,肯定要为企业整体成本考虑,否则要不了多久,便是讨薪大军的一员了吧。。。

一、如何选择

1、高可用集群

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

特点:

  • 前期技术开发成本低

  • 一定的服务器扩容成本

  • 核心团队编制及技能要求较少

  • 项目发布部署基本无依赖,时间成本低

  • 服务器运维成本一般

  • 大而全的项目模块分离设计

  • 更省更稳的技术架构选择

  • 微服务架构强迫症不适用

2、微服务架构

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

  • 前期一定的技术开发成本

  • 较低的服务器扩容成本

  • 核心团队编制及技能要求较高

  • 项目发布部署存在依赖,逐个部署,时间成本较高

  • 服务器运维成本一般或较高

  • 较清晰的项目模块分离设计

  • 更潮更时尚的技术架构选择

二、高可用集群架构

1、必备服务器清单

  • 负载均衡服务器

  • web项目服务器

  • 缓存服务器

  • 数据库服务器(主备)

注意:可能有人会问,若是小型项目单机服务,负载均衡是否就不需要?负载均衡主要工作是分发请求到源服务器,另一个作用也是为了保护源服务器,不暴露服务器真实IP,大幅度降低服务器被DDoS攻击的风险,可参考《被人DDoS攻击了,分析一下原理和防护》 一文。

2、扩展服务器清单

  • 更多web项目服务器(集群负载)

  • 异步服务服务器(配置中心、消息队列、job任务等)

  • 数据库服务器(读写分离、主从复制)

  • 文件服务器

2、架构图

编辑切换为居中

添加图片注释,不超过 140 字(可选)

三、微服务架构

1、服务器清单

  • dubbo / spring cloud 全家桶组件服务器

  • 负载均衡服务器

  • A模块 web项目服务器

  • B模块 web项目服务器

  • C模块 web项目服务器

  • XXX模块 web项目服务器

  • 缓存服务器

  • 数据库服务器

  • 文件服务器

  • 异步服务服务器(配置中心、消息队列、job任务等)

2、架构图

编辑切换为居中

添加图片注释,不超过 140 字(可选)

四、总结

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

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

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

                                                              资源获取:
大家 点赞、收藏、关注、评论啦 、 查看
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

现阶段Java高可用集群架构与微服务架构的简单分析 的相关文章

随机推荐

  • Gitlab详细使用说明

    1 下载安装 下载gitlab和安装就不用详细说了 下载可以到官网下载 官网下载速度慢的 可以到我网盘下载 网盘地址链接 https pan baidu com s 1LZ6wq0PZNyB5SzGAzd74ew 提取码 uccq 2 使用
  • Vant库的使用,及日期组件的一些注意点

    Vant库对于开发商城类项目 真的是非常nice 会让你情不自禁爱上它 Vant库支持按需加载 为移动端商城设计的风格 非常完美 但是 本人在实际开发中 也遇到了一些小问题 折腾了老半天 最终得以解决 下面先说说在vue中使用Vant库的流
  • 小米2022春招内推

    小米2022春招内推 内推码 DSpvRGae 登录小米招聘官网http campus hr xiaomi com 投递简历时填入内推码 或者直接微信扫描下方二维码投递 2022春季补招或2023届实习可投递 岗位类型 研发 产品 设计 运
  • 【Python】Pycharm中The file size exceeds the configured limit 的解决方法

    文章目录 问题描述 解决方案 问题描述 用PyCharm打开较大文件的时候 出现错误提示 The file size 11 42 MB exceeds the configured limit 2 56 MB Code insight fe
  • 数据结构与算法—二分查询

    一 二分查询的概念 二 算法思想 程序的非递归实现 int binaryFind int nums int n int key int left 0 right n 1 int mid 0 int pos 1 while left lt r
  • Python实现双端队列

    Python实现双端队列 关于双端队列的介绍 请参考 https blog csdn net weixin 43790276 article details 104033337 双端队列的数据存储结构可以是顺序表 也可以是链表 本篇文章使用
  • java计算机毕业设计基于springboo+vue的准妈妈孕期育儿婴幼儿交流平台

    项目介绍 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 准妈妈孕期交流平台当然也不能排除在外 准妈妈孕期交流平台是以实际运用为开发背景 运用软件工程原理和开发方法 采用sprin
  • Python学习----不同分类器的Calibration比较

    Well calibrated classifiers are probabilistic classifiers for which the output of predict proba can be directly interpre
  • Visual C++ 6.0 如何添加一个对话框

    1 创建一个MFC单文档应用程序 2 为IDR MAIN FRAME主窗口添加新的菜单 关于 介绍 其中介绍菜单ID ID TELL 3 添加一个新的对话框IDD DIALOG1 并为它添加一个类 类名为Tell 4 为菜单 介绍 添加消息
  • 程序员去大公司面试,Java岗大厂面试官常问的那些问题,进阶学习

    前言 这段时间一直在学习Netty相关知识 因为涉及知识点比较多 也走了不少弯路 目前网上关于Netty学习资料琳琅满目 不知如何下手 其实大家都是一样的 学习方法和技巧都是总结出来的 我们在没有找到很好的方法之前不如按部就班先从基础开始
  • 我希望我知道的七个JavaScript技巧 译(转)

    23 April 2014 如果你是一个JavaScript新手或仅仅最近才在你的开发工作中接触它 你可能感到沮丧 所有的语言都有自己的怪癖 quirks 但从基于强类型的服务器端语言转移过来的开发人员可能会感到困惑 我就曾经这样 几年前
  • networkx报错:TypeError: object of type 'dictionary-keyiterator' has no len()

    TypeError object of type dictionary keyiterator has no len 这是networkx1 x和network2 x不同导致的 在node集合的基础上加list 即可 更多 https bl
  • Sigmoid激活函数和ReLU激活函数的区别:

    Sigmoid激活函数和ReLU激活函数的区别 特性 Sigmoid 激活函数 ReLU 激活函数 梯度弥散 只有在0附近的时候有比较好的激活性 在正负饱和区 其梯度都接近于0 导致梯度弥散 在大于0的部分梯度为常数 不会出现梯度弥散 单侧
  • 第一篇:UE4如何输出全景图,和自定义截图

    首先 向大家介绍一下UE4的两种输出全景图的方法 一种是利用UE4自带的输出插件 一种是NVIDIA的插件 一 UE4自带插件 1 打开Edit gt Plugins 选择Stereo Panoramic Movie Capture插件导入
  • QT 学习之键盘事件( keyPressEvent)

    Qt keyPressEvent keyPressEvent是QWidget里面的函数 所以凡是继承自QWidget的类都可以通过实现这个函数来完成对按键事件的响应 要让当前的widget能够响应按键事件 最先需要做的事情是 调用 setF
  • golang知识点

    一 Go的GC机制 1 Go的垃圾回收机制采用了标记 清除算法和三色标记法 垃圾回收器会在程序运行期间定期地扫描堆上的对象 并将其标记为 活动对象 或 垃圾对象 当所有的活动对象都被标记后 垃圾回收器会清除所有未标记的对象 这个过程被称为
  • MyBatis的动态SQL语句

    文章目录 1 动态SQL之
  • win10 修改java环境变量不生效

    Microsoft Windows 版本 10 0 19045 2728 c Microsoft Corporation 保留所有权利 C Users Administrator gt java version C Users Admini
  • 宝塔linux面板,修改root密码

    root 密码忘记了 但宝塔vps的密码没忘记 翻完宝塔linux面板都没看到有修改系统root密码的选项 后来尝试定时任务shell 也没成功 最终快绝望的时候 发现通过添加插件成功修改密码并登陆终端 详情如下 系统工具 linux工具箱
  • 现阶段Java高可用集群架构与微服务架构的简单分析

    可能大部分读者都在想 为什么在这以 dubbo spring cloud 为代表的微服务时代 我们还要整理这种已经 过时 高可用集群架构 本人工作上大部分团队都是7 15人编制的开发团队 对应的公司项目也大都是中小型项目 最大的项目 PV