单体架构
Last updated
Was this helpful?
Last updated
Was this helpful?
单体架构是指业务功能的实现全部在一个进程(process)内完成。用户请求的接收,相关业务逻辑的调用,从数据库中获取数据等处理全部在一个进程内完成,如图1所示,最终打包成一个WAR包,放入tomcat等web容器里运行。
单体架构适用于哪些场景?
l 创业初期,人手紧张,又需要快速完成业务需求。
l 对性能要求极其苛刻场景,哪怕请求慢1ms都无法接受(比如在金融行业,量化交易场景,响应时间就是生命线)。
图1单体架构
l 请求响应延迟低,接收客户端请求,经过一次网络交互从数据库批量获取数据,其余的功能全部在进程内完成,避免了多次网络交互。
l 仅一个进程,部署和运维成本小。
l 业务功能单元间耦合严重、扩展性差、技术选型单一(在一个进程内是否可以采用多种开发语言?)等。
l 单体架构最大的问题是架构粒度过粗,导致系统迭代速度快不起来。互联网业务又是持续高速发展的业务,采用单体架构很难满足需求。
单体架构需要按照某些维度进行拆分:按照系统水平方向进行拆分(水平分层架构)、按照业务功能垂直拆分(SOA架构)、既按照业务功能垂直拆分又按照系统水平方向进行拆分(微服务架构)。