360搜索在微服务架构下的技术平台实践(一) — 单体架构

  • Post author:
  • Post category:其他


单体架构

单体架构是最常见的架构方式,将所有功能、业务逻辑都放在一个web容器中,成为一个应用。这就是我们常说的单体架构。

例如,我们有一个小型商城系统,那么如下图所示:

小型商城

在这里,我们将所有的功能都放在一个web容器中,例如订单管理、商品管理、支付功能、通知功能、购物车管理、物流相关等。

单体架构下,我们发现性能跟不上了,怎么办?

我们可以通过LoadBalance扩容,也就是找台机器,将web目录拷过去,把web服务器启动,然后挂在我们的LVS下即可。

这里写图片描述

但是,很明显,单体架构下只能线性、水平的扩展,不能做到某些功能更常用就扩展某些功能。

例如,我们在上面的例子中,发现购物车的访问量比 物流、支付 功能的访问量大了十倍。这个情况下,单体架构也只能将整个应用都部署到其他机器上。

单体架构的优缺点

优点:

易于开发:在项目初期、小型项目的情况下,逻辑不复杂,功能也比较单一,开发起来很直观也很方便。

易于部署:直接找一台机器,把目录/war包 拷过去启动web服务就可以用。

易于水平扩容:直接找一台机器,把目录/war包 拷过去启动web服务,然后挂在LVS下即可。

缺点:

过载的web容器:所有的功能都在一个war包中。

难以持续集成:每次打包就得花半天

功能扩展困难:牵一发动全身,改一个,测全部

技术栈单一且易过时:其实我们做技术的人,都会有一定的技术追求,都希望用最酷的技术来做最酷的事情。但现在流行的技术,5年之后就已经老掉牙了,但你想对已有的单体架构做技术升级,代价大、困难大。最终只能将错就错的维护,或者是花费很大代价重构。

对单体架构的介绍就到这里,下一篇文章,将会带来 微服务思想 的介绍



版权声明:本文为lambert310原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。