| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【架构师面试-消息队列-2】-消息队列使用场景剖析 -> 正文阅读 |
|
[大数据]【架构师面试-消息队列-2】-消息队列使用场景剖析 |
1:应用解耦1:原系统缺点是耦合性太强,每个系统都要接入A,每次加入新系统是不是都需要修改代码? 2:应用解耦需要被接入的系统A只需要将消息写入MQ即可,每个需要对接系统A的系统只需要订阅消息队列的消息,系统A的代码完全不需要修改。 3:举例用户支付订单完成后,系统需要给用户发红包、增加积分、发货、物流等等行为,就可以通过这样的方式进行解耦。 2:异步处理1:同步一次请求耗时:3 + 300 + 200 + 600 = 1103ms 请求执行耗时较长有什么弊病:系统百分之80%的性能问题,都是慢查询导致 系统请求耗时较长 --- 吞吐量大幅降低 --- 系统资源占用陡升 特点:串行、逐个、同步 1. 系统A需要等待,BCD逐个执行完毕 2. 如果任意系统出错,那么真个流程就报错 3. 如果任意系统超时,那么整个流程就超时 2:异步一次请求耗时:3 + 2 = 5ms 特点:异步、并行 前提:系统A返回的结果,并不依赖BCD处理的结果 MQ发送消息失败咋办? 3:流量削峰系统A压测得出接口峰值处理能力500tps。 大多数系统,一定会有访问量的波峰和波谷。比如:12306、美团外卖... 如果在访问量大的情况下,所有请求都打到数据库上,那么再强悍的数据库也很难承受。 将多余请求积压在MQ中,系统A慢慢处理。把超过500峰值的流量削掉,填在空闲的其他低估时期,所以才叫削峰填谷。 消息队列会不会被打挂掉? 4:信息通信1:概述消息通讯是指,消息队列一般都内置了高效的通信机制,因此也可以用在纯的消息通讯。 2:举例IM 聊天 点对点消息队列。有基于消息队列的 RPC 框架实现,例如rabbitmq-jsonrpc ,用的人较少。 面向物联网的 MQTT 。阿里在开源的 RocketMQ 基础上,增加了 MQTT 协议的支持,可见 消息队列 for IoT 。 5:日志处理1:如何使用日志处理,是指将消息队列用在日志处理中,比如 Kafka 的应用,解决大量日志传输的问题。 日志采集client,负责日志数据采集,定时批量写入 Kafka 队列 Kafka,负责日志数据的接收,存储和转发 日志处理Server:订阅并消费 Kafka 队列中的日志数据,将日志信息进行分析,可视化展示等... 2:最常见日志解决方案:ELKKElasticsearch :实时日志分析服务的核心技术,一个 schemaless ,实时的数据存储服务,通过index 组织数据,兼具强大的搜索和统计功能。 Logstash :对接 Kafka 写入的日志,做日志解析,统一成 JSON 输出给 Elasticsearch 中。 Kibana :基于 Elasticsearch 的数据可视化组件,超强的数据可视化能力是众多公司选择 ELK stack 的重要原因。 Kafka :接收用户日志的消息队列 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:04:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |