高可用性架构如何实现?
匿名提问者2023-04-04
麻烦详细介绍高可用性架构如何实现
推荐答案
同学,您好!高可用性架构如何实现?高可用架构开发是大多数软件开发程序员需要满足的编程开发需求。下面我们将通过案例研究来简要了解如何实现高可用性架构。
1 简介
消息中间件是指在分布式系统中完成消息发送和接收的基础软件。
消息中间件也可以称为消息队列(MessageQueue/MQ)。 在互联网场景中,消息中间件常用于消息路由、订阅发布、异步处理等操作,以缓解系统压力。
消息队列的引入主要是为了解决以下问题:
解耦:比如订单系统,减少库存的工作可以通过消息队列交给库存系统处理,不需要等待实时响应。
执行顺序:先进先出原则,业务事件按照进入消息队列的先后顺序进行处理。
消息路由:将队列中的消息按照不同的规则发送给不同的业务服务。
异步处理:将一些不需要实时响应结果的计算放到异步处理中,提高系统的吞吐量。
削峰:减少高峰期的操作。比如整个操作流程包含12个步骤,最后11个步骤的关注度不高的数据可以放在消息队列中。
既然是为解决大流量场景而设计的,那么其自身的稳定性和健壮性就显得格外重要。 我们来看看消息队列是如何保证可用性的。
2.消息队列的基本组成
在分析高可用特性之前,先回顾一下消息队列的基本组成。不管是什么类型的消息队列,基本上都包括以下几个组成部分:
Broker:消息服务器,以服务的形式运行在服务器端,为各个业务系统提供核心的消息数据中转服务。
Producer:消息生产者,业务的发起者,负责生产消息并传输给broker。
Consumer:消息消费者,业务处理器,负责从broker获取消息,进行业务逻辑处理。
Topic:Topic模块,发布/订阅模式下消息的统一集合场所,不同的生产者向topic发送消息,MQ服务器分发给不同的订阅者,实现消息广播
队列:PTP模式下,特定的生产者向特定的队列发送消息,消费者订阅特定的队列接收指定的消息。
消息:消息体是按照不同通信协议定义的固定格式编码的数据包,用于封装业务数据,实现消息传输。
3、高可用架构保障
了解了消息队列的构成之后,我们再来看看这种结构是如何保证高可用的。
首先,高可用性是指系统出错的概率和无故障运行的时间。从消息队列的角度来说,至少要保证以下几点:
消息丢失率低:消息可靠性也是衡量消息中间件好坏的关键因素,尤其是在金融支付领域,消息可靠性尤为重要。
低故障率:消息中间件的可用性是指无故障运行的时间百分比,通常用几个9来衡量,比如99.99%就是一个很好的指标。
多副本容错:一般需要多副本,强一致性。多副本可以保证在master节点异常宕机后,slave可以提升为新的master继续提供服务,保证可用性。
针对高可用性架构如何实现这个问题,上面内容已经做了相关介绍。更多相关内容请持续关注千锋教育。