架构师训练营 week5 学习总结
缓存
影响缓存命中率的主要指标
• 缓存键集合大小
• 缓存可使用内存空间
• 缓存对象生存时间
旁路缓存(cache-aside)
• 对象缓存是一种旁路缓存,旁路缓存通常是一个独立的键值对(key-value)存储。
• 应用代码通常会询问对象缓存需要的对象是否存在,如果存在,它会获取并使用缓存
的对象,如果不存在或已过期, 应用会连接主数据源来组装对象,并将其保存回对象
缓存中以便将来使用。
技术栈各个层次的缓存
消息队列
点对点模型
发布订阅模型
事件驱动架构EDA
主要 MQ 产品比较
• RabbitMQ 的主要特点是性能好,社区活跃,但是 RabbitMQ 用 Erlang 开发,对不熟
悉 Erlang 的同学而言不便于二次开发和维护。(49M)
• ActiveMQ 影响比较广泛,可以跨平台,使用Java开发,对Java比较友好。(27M)
• RocketMQ 是阿里推出的一个开源产品,也是使用Java开发,性能比较好,可靠性也
比较高。(35M)
• Kafka ,LinkedIn 出品的,Scala 开发,专门针对分布式场景进行了优化,因此分布
式的伸缩性会比较好。(63M)
负载均衡
数据链路层负载均衡
一致性HASH算法
哈希取余算法扩展性差,一致性哈希环算法解决扩展问题但引入了均衡问题,基于虚拟节点的一致性哈希算法解决均衡问题,影响范围更小,更利于扩展;
基于虚拟节点的一致性 Hash 算法
版权声明: 本文为 InfoQ 作者【花果山】的原创文章。
原文链接:【http://xie.infoq.cn/article/521c407ab46bd1f78bca2187f】。未经作者许可,禁止转载。
评论