For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
高可用性架构开发是目前大多数软件开发程序员都需要满足的一个编程开发需求,而本文我们就通过案例分析来简单了解一下,高可用性架构如何实现。
1、介绍
消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。
消息中间件也可以称消息队列(MessageQueue/MQ),互联网场景中经常使用消息中间件进行消息路由、订阅发布、异步处理等操作,来缓解系统的压力。
引入消息队列主要是为了解决如下问题的:
解耦:如订单系统,可以通过消息队列把削减库存的工作交给库存系统去处理,而不用等实时响应。
执行有序性:先进先出原理,按照进入消息队列的顺序处理业务事件。
消息路由:按照不同的规则,将队列中消息发送到不同的业务服务中。
异步处理:将一些无需实时响应结果的计算放到异步中,提升系统的吞吐率。
削峰:将峰值期间的操作削减,比如整个操作流程包含12个步骤,后11个步骤非强关注结果的数据,可以放在消息队列中。
既然本身就是为了解决大流量场面而设计的,那他自身的稳定性、健壮性就显的无比重要,下面我们来看看消息队列怎么去保证可用性的。
2、消息队列的基本构成
分析高可用特性前先复习下消息队列的基本组件,无论是哪一种类型的消息队列,基本都包含以下构成:
Broker:消息服务器,以服务的形式运行在server端,给各个业务系统提供核心消息数据的中转服务。
Producer:消息生产者,业务的发起方,负责生产消息传输给broker。
Consumer:消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理
Topic:主题模块,发布/订阅模式下的消息统一汇集地,不同生产者向topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播
Queue:队列,PTP模式下,特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收。
Message:消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输。
3、高可用性架构保证
了解了一个消息队列的构成之后,我们来看看这种结构是怎么保障高可用性的。
先,高可用是指系统的出错概率和无故障运行时长,从消息队列角度出发,至少要保证一下几点:
低消息丢失率:消息可靠性也是衡量消息中间件好坏的一个关键因素,尤其是在金融支付领域,消息可靠性尤为重要。
低故障率:消息中间件的可用性是指无故障运行的时间百分比,通常用几个9来衡量,如99.99%就是一个不错的指标。
多副本容错能力:一般会要求多副本及强一致性,多副本可以保证在master节点宕机异常之后可以提升slave作为新的master而继续提供服务来保障可用性。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。