微服务OR单体架构

devtools/2024/10/20 15:58:15/

微服务OR单体架构

  • 为什么会出现微服务和单体架构的争议?
  • 在实际的业务中,你选择的是微服务还是单体架构
  • 在云上,哪种架构更符合未来云的发展趋势呢?

说到微服务OR单体架构,其实这两个场景并不存在很明确的争议界限的,而是可以理解为一个项目或者说一个系统的不同阶段。比如说系统初始阶段采用单体架构,待用户量、数据量上来之后采用微服务架构,这都是很正常的架构现象。那么为什么会出现争议呢?

为什么会出现微服务和单体架构的争议?

对于这个问题,个人理解应是项目之初对于架构的选择问题上触发的争议。因为项目之初往往为了快速上线,抢占市场,对于项目上可支配的时间往往不是很充裕,甚至说是很紧张。这个时候就会有两种声音:一种是采用单体架构,项目开发周期短,功能够用,上线速度快,无需考虑由于微服务架构带来的各种数据一致性问题以及子项目的交互问题;另外一种就是说采用微服务架构,虽然开发周期会延长,但是功能更强大,系统整体容灾性更好,系统更稳定,单一子项目代码体量小,上线更快更无感,后期拓展能力更强。

所以说这个时候,往往就会在选择微服务架构还是单体架构上产生争议,不过这个争议其实也是容易评估解决的。如果待开发项目本身初版功能比较简单,且用户量不大,单体架构足以支撑的话,那么考虑到快速上线的情况,当然是选择单体架构周期更短;后期随着功能的不断增多,用户量的不断增长,再逐渐向微服务结构转化或者说整体进行向微服务结构的迁移,都是可以的。而如果待开发项目本身初版功能就比较全,时间上也不是很紧张,那么当然选择微服务架构对于项目的拓展性以及单一子项目代码更新的便捷性上都是很不错的,只是需要考虑数据一致性以及子项目之间通信的问题。

在实际的业务中,你选择的是微服务还是单体架构

在实际业务中,我们的项目发展过程基本就是沿着单体架构微服务架构的路线进行的。项目初始往往比较急,需要尽快上线体验功能,因此采用单体架构附以nginx负载均衡转发提供服务,保证项目稳定运行;待后期项目功能不断拓展,单一项目承载太多,体量太大的时候,会拓展出小的子项目,搭建微服务架构来保证系统稳定,同时保证单一子项目迭代上线不影响整体业务运行。

在云上,哪种架构更符合未来云的发展趋势呢?

在云上,当然还是微服务脚骨更符合未来云的发展趋势。对于云来说,系统上云往往也就是由于系统本身的数据量太大,本地服务器已经无法承载才会提前上云保证服务运行。而大批量的访问和数据量处理,单体架构自然是无法承载的,这个时候微服务架构就能很好的发挥优势。对于不同的业务开辟出独立的应用进行开发、运行、部署、维护,整体上不影响整个系统本身的运行,这样其实也更符合云的开放的思想。

综合来说,微服务架构更符合未来云的发展趋势。


http://www.ppmy.cn/devtools/6751.html

相关文章

革新鞋服零售:数据驱动的智能商品管理 解锁库存优化与高效增长

国内鞋服零售企业经过多年的发展,已经形成诸多家喻户晓的品牌,但近年来一些企业的库存问题也时常显现,高库存不仅困扰着品牌商,也使一些多年合作良好的经销商深受其害,当下的订货会制度在初期帮助企业解决了盲目生产的…

YoLo World代码块解读

MaxSigmoidAttnBlock 分别处理图像与文本特征,计算这两者的相关性,得到整个句子所有word中最大的相关性数值作为attention作用于图像特征中。 class MaxSigmoidAttnBlock(nn.Module):"""Max Sigmoid attention block."""…

数据可视化-ECharts Html项目实战(13)

在之前的文章中,我们深入学习ECharts动态主题切换和自定义ECharts主题。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 数据可视化-ECharts Html项…

【vim】折叠代码

目录 简介操作创建折叠删除折叠打开或关闭折叠在折叠间移动简介 Vim编辑器中可以使用 foldmethod 选项设置折叠方法。 将 foldmethod 设置为 manual 以外的值时,将删除所有折叠并创建新折叠。切换到 manual 方法不会删除现有的折叠。由此可以先用自动定义折叠,然后手动更改它…

jenkins+docker集成harbor实现可持续集成

目录 一、前言 二、Harbor介绍 2.1 什么是Harbor 2.1.1 Harbor架构图 2.2 Harbor 特征

基于双向长短期神经网络bilstm的径流量预测,基于gru神经网络的径流量预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 BILSTM神经网络 基于双向长短期神经网络bilstm的径流量预测,基于gru神经网络的径流量预测 完整代码:基于双向长短期神经网络bilstm的径流量预测,基于gru神经网络的径流量预测(代码完整,数据齐全)资源-CSDN文库 https://dow…

JVM之JVM栈的详细解析

Java 栈 Java 虚拟机栈:Java Virtual Machine Stacks,每个线程运行时所需要的内存 每个方法被执行时,都会在虚拟机栈中创建一个栈帧 stack frame(一个方法一个栈帧) Java 虚拟机规范允许 Java 栈的大小是动态的或者是…

设计模式学习笔记 - 开源实战一(下):通过剖析JDK源码学习灵活应用设计模式

概述 上篇文章我们讲解了工厂模式、建造者模式、适配器模式适配器模式在 JDK 中的应用,其中 Calendar 类用到了工厂模式和建造者模式, Collections 类用到了装饰器模式和适配器模式。学习的重点是让你了解,在真实的项目中模式的实现和应用更…