响应式微服务入门
1. 理解响应式微服务
在深入探讨响应式微服务之前,我们先来了解“响应式”的含义。一个软件要被认为是响应式的,必须具备某些基本属性,包括响应性、弹性、自治性,以及最重要的消息驱动。下面我们将详细讨论这些属性,以及它们如何使微服务更能满足大多数企业的需求。
1.1 响应性
不久前,在需求收集会议中,业务发起者的关键需求之一是保证几秒内的响应时间。例如,早期的定制T恤打印电商网站,用户上传图片后,期望能在短时间内看到图片渲染到所选服装上的效果。如今,如果网页加载时间超过几秒,用户就会关闭浏览器窗口。
如今的用户期望近乎即时的响应。要实现这一点,代码必须遵循一定的标准以提供预期的性能。解决业务问题通常需要多个组件协作,每个组件返回结果的时间已缩短到毫秒级。此外,系统在响应时间方面不仅要具备性能,还要保持一致性。如果某个服务在一段时间内的响应时间不稳定,这可能预示着系统存在问题,需要及时处理。
然而,挑战远不止表面看到的那样。对于这种特性,需要深入探究设计中是否存在问题,可能是对其他服务的依赖、服务内同时执行过多功能,或者同步通信阻塞了工作流。
1.2 弹性
在分布式计算的背景下,当系统中的一个或多个组件发生故障时,用户期望系统如何表现?是单个故障引发灾难性的多米诺效应,导致整个系统崩溃,还是系统能够优雅地恢复,并在预期的时间内恢复正常?在这种情况下,最终用户不应受到影响,或者系统至少应将影响降至最低,确保用户体验不受损害。
基于微服务的弹性应用会遵循服务间通信原则。在这样的应用中,即使某个服务出现通信故障,其他两个或多个服务仍可继续相互通信,而不影响整个系统。这
超级会员免费看
订阅专栏 解锁全文
43

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



