微服务

前言

微服务是一种服务架构模式,目标是架构师的话,当然不能放过这个知识点。

架构模式

一般的项目架构有两种形式:单体应用和微服务。

单体应用

单体应用就是用一套代码实现全部功能。

微服务

微服务就是把单体应用的代码按照功能拆分出来,形成多套独立的代码,通过某种方式让它们连接在一起,实现完整功能。

单体应用好比早期的网站开发,用 PHP 搭建的网站:

1
2
3
4
5
6
<html>
...
<body>
<?php echo "hello world!" ?>
</body>
</html>

HTML 代码与 PHP 代码混合在一起。

而随着技术的发展,又推出了 MVC 模式,实现模型、视图、控制器的分离。

然而问题的本质依然没有改变,还不是要一个人去完成同样的工作?

技术从未停下发展的脚本,职业的分工越来越明确,开始出现专门写 HTML 和 JavaScript 的前端人员和专门写 PHP 代码的后端人员,前端人员通过一项技术“Ajax”调用后端人员写的接口,使他们看似分离但却紧紧的联系到一起,共同实现一个完整的项目。

这样的分工方式就叫做微服务。

微服务架构

比如有一套系统,包括如下业务:

微服务架构

把这些业务拆分出来,单独做成一套系统,然后以某种方式让独立的项目之前能够进行通信,这就完成了一套微服务架构。

微服务通信模式

HTTP 通信

RPC 通信

消息队列

微服务的优缺点

优点

  • 大型项目解耦,提高整体性能
  • 每个服务都很小,开发人员可以聚焦自己负责的功能模块。
  • 只需要极少的人来维护一套代码
  • 可以用不同的语言开发

缺点

  • 架构需要花费一定的精力,如果架构得不好,后期反而会变成麻烦
  • 由于服务分散成很多个,因此难以快速定位错误
  • 管理成本提高
文章作者: 火烧兔子
文章链接: http://huotuyouxi.com/2020/03/14/mini-server/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 火兔游戏工作室