微服务OR单体架构

微服务OR单体架构

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW供热管道泄漏监测与定位

LabVIEW供热管道泄漏监测与定位 在现代城市的基础设施建设中,供热管道系统起着极其重要的作用。然而,管道泄漏问题不仅导致巨大的经济损失,还对公共安全构成威胁。因此,开发一种高效、准确的管道泄漏监测与定位技术显得尤为关键。…

GUI02-在窗口上跟踪并输出鼠标位置(Win32版)

(1) 响应 WM_MOUSEMOVE 消息获得鼠标位置; (2) 响应 WM_PAINT 将鼠标位置输出到窗口中; (3) 学习二者之间的关键步骤:调用 InvalidateRect() 以通知窗口重绘。 零. 课堂视频 在窗口上跟踪输出鼠标位置-Win32版 一、关键知识点 1. BeginPaint…

Android studio 报错无法找到android.support.v4.app.Fragment——终极解决方案

最近搞了一个小工具,UI界面使用了android.support.v4.app.Fragment,然后同事从服务器下载代码后编译报错无法找到android.support.v4.app.Fragment。 从网上找各种文章,国内国外都看了一遍,大部分解决方案原因都是说Android 9之后…

HANA SQL消耗内存和CPU线程的限制参数

HANA再处理大数据表相关的复杂Sql时,如果没有设置Memory和CPU线程上限的话,会将HANA的资源占用殆尽,造成HANA无法响应其他Sql请求,导致表现在应用服务器上就是系统卡顿的情况。解决上述问题的办法就是按照下图设置Memory(图1&…

【解决】Unity 编辑器内打开场景出现引擎崩溃问题

开发平台:2019.4.10f1   问题背景 1)修改 Variant Prefab 变体制件时,出现外部引用的模型文件丢失导致引擎崩溃。 2)二次打开工程时,在选中 该问题资产、问题资产所应用的场景等 文件对象时,Unity 编辑器…

Rust常见陷阱 | 不太勤快的迭代器

在Rust中,迭代器被设计为惰性的,意味着它们不会立即对所有元素进行操作。相反,只有在消费者(consumer)需要时,元素才会被处理。这种设计可以带来效率上的优势,因为它避免了不必要的计算和存储。然而,这也意味着使用迭代器时必须格外小心,以确保所有的元素都按预期被处…

穿越物联网的迷雾:深入理解MQTT协议

目录标题 1、MQTT简介核心特性 2、MQTT的工作原理通信过程 3、MQTT的消息质量(QoS)4、安全机制5、实践应用环境准备示例项目发布者客户端订阅者客户端 6、最佳实践7、结论8、参考资料 在物联网(IoT)的海洋中,数据像水流…

软考 - 系统架构设计师 - 设计模式

概念 每一个设计模式描述了一个在我们周围不断重复发生的问题,以及该问题解决方案的核心,这样,就可以在遇到相同的问题时使用该解决方案进行解决,不必进行重复的工作,设计模式的核心在于提供了问题的解决方案&#xff…

uni-admin中引入uni-cms的缺少schema及uni-media-library缺少云函数的问题

1. 在管理端运行提示一些表找不到,因为是uni-admin关联的uni-starter的服务空间,在uni-admin的uniCloud中没有内容,在uni-starter的uniCloud中也没有发现对应的表,后面干脆在云端找到对应的表之后新建了,然后再下载到本…

MapReduce——数据切片与MapTask并行度决定机制

MapReduce——数据切片与MapTask并行度决定机制 MapReduce 数据切片和 Map 任务的并行度决定机制是 MapReduce 框架中两个重要的概念,它们直接影响作业的执行效率和性能。 1.数据切片(Data Splits) 数据切片是指将输入数据拆分成更小的块或片…

开发语言漫谈-Object C

C的家族还有个另类,Object C int main(int argc, char *argv[]) { autoreleasepool { NSLog("Hello World!"); } return 0; } 这里还能看到C的风采,但到这里就偏离了: [obj method: argument]; 这也体现了这门语言…

Python 入门指南(四)

原文:zh.annas-archive.org/md5/97bc15629f1b51a0671040c56db61b92 译者:飞龙 协议:CC BY-NC-SA 4.0 第十章:哈希和符号表 我们之前看过列表,其中项目按顺序存储并通过索引号访问。索引号对计算机来说很有效。它们是整…

Linux命令学习—Apache 服务器(上)

1.1、http 服务原理 http 超文本传送协议 80 端口 https 安全的超文本传输协议 443 端口 基于 C/S(客户端/服务端)模型 协议流程: 连接:客户端与服务端建立连接 请求:客户端向服务端发送请求 应答:服务端响应,将结果…

美团财务科技后端一面:如何保证数据一致性?延时双删第二次失败如何解决?

更多大厂面试内容可见 -> http://11come.cn 美团财务科技后端一面:项目内容拷打 美团财务科技后端一面:项目相关面试题,主要包含 Zset、延时双删失败重试、热点数据解决、ThreadLocal 这几个方面相关的内容 由于前几个问题是对个人项目的…

C++ STL 容器 list

目录 1. list 对象2. list 迭代器2.1 实现2.2 迭代器失效 本文测试环境为 gcc 13.1 1. list 对象 std::list 底层是一个双向循环链表 list 对象本身包含一个头节点,通过指针指向元素节点,节点定义如下 头节点 header 和元素节点 node 都继承于基类 no…

历史遗留问题1-Oracle Mysql如何存储数据、索引

在学习到Oracle redo和undo时,涉及到很多存储结构的知识,但是网上的教程都不是很详细,就去复习了一下mysql,感觉是不是开源的问题,Mysql的社区和知识沉淀远高于Oracle, 对于初学者很友好,我想请…

2025考研数学武忠祥强化班视频,百度网盘课程+讲义PDF更新

25考研的小伙伴们现在应该基础都学习的差不多了吧! 是时候进入强化阶段的学习啦。 2025考研数学强化班全程网盘:https://pan.baidu.com/s/1Z029fuCLkyyhIRFqd5QKcg 提取码:p3ue 晚上好,聊聊17堂课的看课攻略。 今年的17堂课还…

IP-guard WebServer 权限绕过漏洞复现(QVD-2024-14103)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

Mac下brew安装php7.4

这里作者挂了梯子,所以很流畅! brew的下载,可参考另外一篇博文~Homebrew 安装与卸载 1、将第三方仓库加入brew brew tap shivammathur/php2、安装指定版本的PHP brew install php7.43、替换Mac自带PHP环境并刷新环境变量 -> …

【ACM列表推荐会议 | EI稳定检索】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024) 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…