消息队列与异步架构||负载均衡架构

用户头像
独孤魂
关注
发布于: 2020 年 07 月 05 日





这一周我们学习了异步架构和负载均衡架构。

异步调用,链路上每个节点只做自己的事情,不用去等待别人操作完成,非常高效。能让服务器从TPS 150 增长到220左右,大约提升1.5倍。这也是为什么说响应式编程将成为趋势的主要原因。

当前异步调用有多种实现方案,响应式编程框架,dubbo异步调用callback,消息队列等等。其中消息队列当属目前使用最为广泛的实现方案(以后响应式编程可能会更多)。

消息队列中,Kafka以较高的吞吐量备受青睐,但是它属于批量发送消息,所以丢失的概率相对较高,可以用于ELK等丢失容忍度较高的业务场景中。RocketMQ以稳定的性能,消息较高可靠性,被使用于大量的业务功能,并且它支持事务性消息,简化开发流程(不用自己去核对是否一致),提高了可靠性。



想要实现高可用和高性能的架构,集群和负载均衡必不可少。负载均衡实现的方式很多,其中使用比较广泛的有nginx反向代理,DNS负载均衡,LVS负载均衡。这三种负载均衡由于作用于不同的阶段,可以同时使用。

谈到负载均衡,必定有对应的算法,多台服务器,怎么选择呢? springCloud基于轮询,dubbo基于随机,它们都是简单而有效的方法。最少连接数,服务器性能优先等算法虽然更高大上,但是它们的统计和选择也消耗性能,反而不如简单算法实用。

有集群,必然涉及session的同步问题。session同步中,cookie很常用,但是不能保存敏感信息。共享session服务器当属最可靠和兼容性强的方案了。

发布于: 2020 年 07 月 05 日 阅读数: 41
用户头像

独孤魂

关注

还未添加个人签名 2019.04.10 加入

还未添加个人简介

评论

发布
暂无评论
消息队列与异步架构||负载均衡架构