深入了解微服务:架构、优势与设计
1. 单体应用与微服务对比
1.1 单体应用示例
以折扣申领应用为例,当有用户想要申领新的人工智能代码编辑器的折扣时,在单体应用架构下,用户在网页上输入姓名和邮箱后,应用会按顺序执行一系列任务。首先将用户数据存储到数据库,接着向客服发送内部消息,然后给用户发送带有折扣码的邮件,最后写入日志信息。然而,发送邮件这一任务耗时近 10 秒,在此期间用户界面会冻结,影响用户体验,甚至引发用户在社交媒体上的调侃。
1.2 微服务版本示例
为避免负面宣传,开发人员采用了微服务架构。当用户输入信息后,应用会立即将消息发送到任务队列,用户体验瞬间完成。每个微服务都是独立的任务,可异步并行运行。它们会监听队列中是否有新消息,若有则解析消息并执行相应任务。邮件发送微服务不会阻碍其他微服务和用户体验,实施该架构后,用户反应积极。
1.3 Python 微服务示例
以下是一个用 Python 实现的微服务示例,它会在检测到任务队列中有新任务时写入日志消息:
1 from celery import Celery
2
3 app = Celery('log', broker='pyamqp://guest@localhost//')
4
5 @app.task
6 def write_log(log_message):
7 ...
- 第 1 行:导入 Celery,它是任务队列管理器。
- 第 3 行:将微服务连接到日志任务队列,使其能监听并接收发送到该队列的所
超级会员免费看
订阅专栏 解锁全文

171万+

被折叠的 条评论
为什么被折叠?



