• 大型网站系统架构演化实例_8.业务拆分


    1.第九阶段:业务拆分

             大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线。如大型购物交易网站都会将首页、商铺、订单、买家、卖家等拆分成不同的产品线,分归不同的业务团队负责。

            具体到技术上,也会根据产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署。应用之间可以通过一个超链接建立关系(在首页上的导航链接每个都指向不同的应用地址),也可以通过消息队列进行数据分发,当然最多的还是通过访问一个数据存储系统来构成一个关联的完整系统。

            此时,网站系统架构如图1所示。

    图1 第九阶段网站架构 

    2.消息队列服务器

    2.1消息队列

            消息:是指在应用系统之间传送的数据。队列:排队的模型 先进先出 类似于火车进隧道。消息队列(Message Queue)是一种应用间的通信方式。消息发布者只管把消息发布到MQ中而不管谁来取,消息使用者只管从MQ中取消息而不管谁发布的。

    2.2消息队列的应用场景

            (1)应用耦合:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败;

            (2)异步并行处理:多应用对消息队列中同一消息进行处理,应用间并发处理消息,相比串行处理,减少处理时间;

            (3)限流削峰:广泛应用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉的情况;

            (4)消息驱动的系统:系统分为消息队列、消息生产者、消息消费者,生产者负责产生消息,消费者(可能有多个)负责对消息进行处理;

    2.3常见的消息队列

            当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等,而部分数据库如Redis、MySQL以及phxsql也可实现消息队列的功能。

  • 相关阅读:
    vue+el-upload(封装华为云OBS上传文件)前端直传
    神经网络-卷积神经网络案例详解
    监控易监测对象及指标之:全面监控MongoDB 5数据库
    Oracle将GraalVM社区版源码贡献给了OpenJDK
    SpringBoot统一异常处理详解
    一些事宜记录
    git使用
    使用Harr特征的级联分类器实现目标检测
    ROS安装
    保姆级教程:Linux (Ubuntu) 部署流光卡片开源 API
  • 原文地址:https://blog.csdn.net/huaqianzkh/article/details/138020721