每周学习总结 - 架构师培训 5 期
消息队列与异步架构
一致性hash https://xie.infoq.cn/article/4c4bfbf6900ebf4c56776ec0e
同步调用和异步调用
同步必须等待下游完成才能继续
异步主要靠队列
普通队列:上游只到队列,发送完消息就结束了,下游拿到消息继续处理
回调队列:上游可以拿到消息回调处理
消息队列模型
点对点模型 只能被一种消费者消费
订阅模型 可以被多种消费者消费
提速
redis 读
MQ 写
经典应用场景 支付订单 削峰填谷 以系统实际(处理能力)来运行 多余的并发请求被高速存储的队列消费了,待并发降到低谷时,消息队列任在处理。
好处
失败隔离
自我修复
解耦
主要MQ比较
RabbitMQ Erlang语言 不利于二次开发
ActiveMQ Java
RocketMQ Java 阿里
Kafka Scala语言
负载均衡
HTTP重定向负载均衡 利用重定向负载均衡服务器
DNS负载均衡 百度 阿里常用 DNS先解析请求分发到二级负载均衡服务器
反向代理服务器 Nginx 数量级小 十几台最多 因为协议是http 比较重 性能消耗大
IP负载均衡 利用TCP中的IP模块传递数据 因为体量小 更轻 效率更高 它只要改变原地址和目的地地址的IP即可。
数据链路层负载均衡 修改最底层链路的Mac地址(仅目的地址的Mac地址被修改)虚拟地址 —— 应用服务器
负载均衡算法
轮询
加权轮询
随机
最少连接
原地址散列
回话共享
session复制 被淘汰 性能差
session绑定 被淘汰 可用性差
用cookies记录session
session服务器
评论