目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7088.7k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(292)
赞(0)

微服务架构的起源与发展

image-20230222134956968

传统单体系统

image-20230329111027679

项目初期主要考虑的是以最快的时间完成开发工作,并上线运行。对于后期的容量预估、可扩展性、可用性、健壮性考虑的没有那么多。但随着业务的发展,用户数量的增长,系统的访问量与日俱增,传统的单体系统越来越不能适应业务的发展。特别是智能手机的普及与4G网络的诞生,任何人都可以随时随地地访问互联网,这就大大拓展了原有系统的业务范围与用户群体。

但是,单体业务系统的服务器的CPU、内存、硬盘、连接数等资源有限,单体系统能够承受的的QPS也是有限的,某个时段大量连接同时执行操作,会导致应用服务器和数据库服务器遇到性能瓶颈。

单体系统的优缺点分析

优点:

  • 架构简单实用,项目前期开发快,团队成员少的时候可以快速迭代
  • 易于测试,只需要通过单元测试或浏览器即可完成
  • 易于部署和升级,打包成单一的jar或war放到容器中启动

缺点:

  • 复杂性高:由于是一个单体系统,所以整个系统的模块是耦合在一起的,模块的边界比较模糊、依赖关系错综复杂。功能的调整,容易带来不可知的影响和潜在的Bug风险。
  • 服务性能问题:单体系统遇到性能瓶颈问题,只能横向扩展,增加服务实例,进行负载均衡分担压力。无法纵向扩展,做模块拆分。
  • 扩缩容能力受限:单体应用只能作为一个整体进行扩展,影响范围大,无法根据业务模块的需要进行单个模块的伸缩。
  • 无法做故障隔离:当所有的业务功能模块都聚集在一个程序集当中,如果其中的某一个小的功能模块出现问题(如某个请求堵塞),那么都有可能会造成整个系统的崩溃。
  • 发布的影响范围较大:每次发布都是整个系统进行发布,发布会导致整个系统的重启,对于大型的综合系统挑战比较大,如果将各个模块拆分,哪个部分做了修改,只发布哪个部分所在的模块即可。

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2