3、微服务时代:从单体应用到微服务架构的转型

微服务时代:从单体应用到微服务架构的转型

1. 单体应用与微服务概述

在软件开发领域,存在着单体应用和微服务架构两种不同的模式。单体应用由一组紧密耦合的组件构成,这些组件通常使用相同的语言开发,应用作为一个整体运行。其显著特点是启动速度慢,部署也可能较慢,因为在应用启动运行前可能需要多个依赖项。

以一个简单的事件应用为例,该应用允许用户定义事件,并在事件即将开始时收到通知。它具备以下功能:
- 用户可以注册并将事件添加到日历中。
- 在事件开始前几分钟,调度器(Scheduler)组件会触发,用户会收到包含事件信息的电子邮件,这由 SMTP 组件负责。
- 用户可以通过前端界面或 API 界面使用该应用。

如果将这个应用视为单体应用,想象所有四个部分都属于同一个进程(即使它们可能在不同的线程中),并且应用直接访问数据库。对于小型应用来说,这种方式或许可行,但对于中型应用而言,这将导致混乱。一组开发人员开发新功能或进行改进会是一场噩梦,新加入的开发人员也需要花费时间来掌握基础知识才能进行修改。

为了避免这种情况,应遵循“不要重复自己”(DRY)原则,尽量减少多个组件对数据源的访问。在上述示例中,API 应该有权限访问数据源,而其他组件则应通过 API 来操作。这样一来,应用就可以拆分为两个服务:API 服务和前端服务。前端服务用于管理事件,但通过 API 服务来操作数据源。这不仅使数据源的管理更加集中,还促使开发者从外部开发者的角度思考 API 的设计,实现了双赢。

然而,这种架构仍有改进空间。前端可以作为一个独立的服务,这样可以根据用户流量进行扩展,其他部分也可以拆分为独立的服务,如调度器和 SMTP 服务。S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值