微服务架构:优势、挑战与项目管理变革
1. 异步消息架构
1.1 消息队列的引入
传统的点对点通信方式存在一定局限性,而消息队列提供了一种替代方案。在这种架构中,有一个或多个消息队列负责处理所有消息。客户端服务将消息发布到队列,监听服务从队列中获取消息。
使用消息队列能带来更多灵活性,但也增加了系统的复杂性。消息队列是一个潜在的故障点,在生产环境中需要像对待数据库一样谨慎维护。而且,为了实现扩展,消息队列需要像数据库一样进行分布式部署。
1.2 消息路由
使用消息队列时,需要决定如何路由消息。虽然服务不需要知道彼此的网络位置,但需要知道如何找到队列。可以使用消息主题来路由消息,服务也需要了解这些主题。
1.3 散射/收集策略
以构建文章页面为例,文章页面由多个元素组成,如用户状态、广告、文章文本等。即使大部分元素未能显示,页面仍然有用。可以采用散射/收集策略,向负责生成这些内容的微服务发送消息,然后在超时时间内异步收集响应。例如,每个微服务有 200 毫秒的响应时间,如果未及时响应,其内容元素将不显示,但用户至少能看到部分内容。这种技术还能让网站感觉更快,因为页面交付不会因慢速服务而变慢。
以下是散射/收集模式的 mermaid 流程图:
graph LR
A[文章页面服务] -->|异步消息| B(文章服务)
A -->|异步消息| C(广告服务)
A -->|异步消息| D(用户服务)
B -->|异步响应| A
C -
订阅专栏 解锁全文
2240



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



