文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

什么是微服务?如何拆分微服务?

2024-11-28 15:05

关注

微服务的背景

大约在 2005年左右,随着互联网公司的快速发展,许多企业开始遇到单体应用程序在可扩展性和灵活性方面的瓶颈,为了应对这些挑战,企业开始探索将应用程序拆分成更小的、独立的组件。

基于上述的背景,微服务的发展出现了几个关键时刻:

要理解微服务,我们首先需要理解软件架构的演变,早期的软件,所有功能都写在一起,数据库也共用一个,这称为单体架构(monolithic software)。

单体软件

单体软件(Monolithic Software)是一种传统的软件架构风格,其中所有的功能组件都被打包成一个独立的、不可分割的应用程序实例。在单体架构中,应用程序的所有部分(如用户界面、业务逻辑、数据访问层等)都是紧密集成在一起的。这种架构的构建方式在软件开发的早期阶段特别普遍,因为在当时的硬件限制和软件工具链条件下,单体应用程序相对容易设计、实现和部署。

单体架构的模型可以抽象成下图:

1.单体软件架构的特点

22.单体软件的优势

尽管单体软件在现代软件开发中逐渐被微服务架构所取代,它仍然有一些优势:

3.单体软件的局限性

随着应用程序功能的扩展和用户数量的增长,单体软件架构的局限性开始显现:

由于上述局限性,许多企业选择将单体应用系统逐步转型为微服务架构,微服务架构可以通过将大型应用程序分解为多个小型、独立的服务来避免单体架构的限制,从而实现更高的灵活性、可扩展性和故障隔离。

什么是微服务?

微服务架构的核心理念是将单体应用程序拆分为多个小型服务,每个服务都是一个独立的进程,通常通过轻量级的通信机制(如HTTP/REST、消息队列等)进行交互。每个微服务都拥有自己的数据存储,可以选择最适合其功能的数据库类型。

微服务架构的模型可以抽象成下图:

微服务主要包含以下 5个特点:

如何拆分?

为了更好地理解微服务架构,这里以电商服务为例,假如某电商的场景有商品功能,订单功能,支付功能,用户功能,运营功能,仓储功能等6个功能,当业务量比较小时,我们可以将这 6个功能点都在一个单体服务中开发和维护,但是,随着业务的快速发展以及技术团队的壮大,单体服务就出现很大的问题,因此,我们需要使用微服务架构,理想情况下的微服务设计如下图:

各个微服务的功能说明如下:

但是,从单体服务到微服务受到很多因素的影响很难拆分得一步到位,因此,我们可能会经过下面的拆分过程,所以微服务中的拆分粒度是根据具体的业务场景和技术能力来拆分的。

从上面微服务拆分迭代的过程可以看出,拆分过程中的任何一个阶段都是合理存在并且有可能是微服务的最终拆分结果,拆分的粒度完全全局于业务场景和业务体量。因此,在微服务架构中,过度拆分也是需要重点关注的一个问题。

微服务的优势

总结

本文,我们分析了什么是微服务,分析了它和单体服务的对比,以及如何拆分微服务。微服务是现在主流的应用解决方案,它将应用拆分成多个小型服务,每个服务可以根据负载进行单独扩展,这使得系统具备高扩展性和高并发处理能力,同时也提高了系统的故障隔离和敏捷性。但是,微服务的拆分粒度是根据具体的业务场景和技术能力来拆分的,拆分粒度完全全局于业务场景和业务体量。因此,微服务的拆分没有一个统一的标准。

来源:猿java内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯