首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何保障业务高峰期的正常交易

如何保障业务高峰期的正常交易

作者头像
希望的田野
发布2020-02-11 13:14:10
9720
发布2020-02-11 13:14:10
举报
文章被收录于专栏:信息化漫谈信息化漫谈

电商时代,出现了双11、1212等购物节,电商可以不断扩大自身业务系统的能力,但后台交易系统的处理逻辑复杂,往往会成为整个系统的瓶颈。如何保障超过平常10倍业务流量的正常处理,我们经常听到一个中间件kafka。现在的业务系统离开了他,基本难以成长。来用实际案例看一下。

一、修一个水池,蓄水

如果上游的水流量太大,而下游的出水量只有一个水龙头这么小,怎么办?我们可以修建一个巨大水池,将上游的水积存起来,不管是洪峰、干旱,下游的处理量永远像一个水龙头一样稳定。

在IT系统里,我们也是一样,将上游业务系统的处理请求保存起来,下游的业务系统定期根据自己的处理能力来取出处理要求。就像下图,队列消息中间件就是蓄水池。

基本每个人的日常生活中,我们都经历了队列中间件的处理。例如,我们在12306订火车票时,支付成功后的几分钟,提示票已售光,将退费。

二、消息中间件实际操作案例

我们通过三台CentOS云主机搭建了一个Kafka集群,其中一台运行Zookeeper。

1、在ecs-hadoop-0001这台broker上创建了一个mx的topic,发送了测试消息:This is a test message,require rentCar!

2、在ecs-hadoop-0002下游业务系统收到了这条测试消息。

在真实的项目中,业务系统支付成功后,下发一条租车的指令;租车排单系统定期从消息队列中取出指令,如果处理成功,则向用户返回成功的短信,如果失败,将执行退费处理。有了消息队列后,集中批量的指令可以分批定时处理,用户的指令不会因为拥塞而崩溃。

三、消息中间件面试常见题

1、消息中间件的作用是什么?常见的中间件有?作用:解耦(业务系统之间不再直接通信)、冗余(消息可以被多份保存)、扩展性(消息中间件可以灵活扩展)、灵活性&峰值处理能力(池化保存)、可恢复、顺序保证、缓冲、异步通信。常见的中间件:kafka、RabbitMQ等。

2、消息中间件的常见工作模式、优缺点:点对点模式、订阅模式。点对点模式缺点:由下游业务系统主动从队列中取消息,消耗了处理资源;点对点优点:下游业务系统可以根据自己的处理能力来进行作业安排。订阅模式就像微信公众号的关注,优点是可以多个消息接收者,缺点是消息采用主动推送,要求下游接收者的处理速度一致。

3、Kafka的Topic为什么要分区?Kafka的每个不同的消息主题分到了不同的Topic,为了提高处理效率,将同一个Topic可分为若干个区(分区数量不能大于broker集群服务器数量),每个区可以同时被Consumer并行处理。

4、Kafka的分区备份数量最大可以设多少?消息的分区块分为leader主用,follower备用,当主用死机时,备用节点可以自动up起来。备份区块数不能大于broker集群服务器数 - 1,这样避免极端情况下备份全放到同一个broker中。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息化漫谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档