架构师训练营 -- 第五周学习总结

发布于: 11 小时前
架构师训练营--第五周学习总结

分布式缓存

定义

缓存是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取的时候,用 于加快读取的速种类

种类

CPU缓存,操作系统缓存,数据库缓存,JVM编译缓存,CDN缓存,代理与反向代理缓存,前端缓存,应用程序缓存,分布式对象缓存

考量指标

缓存命中率:

1.缓存是否有效依赖于能多少次重用同一个缓存响应业务请求,这个度量指标被称作缓存命中率。

2.如果查询一个缓存,十次查询九次能够得到正确结果,那么它的命中率是90%

分布式对象缓存的一致性hash算法

一致性Hash算法通过一个叫做一致性Hash环的数据结构实现Key到缓存服务器的Hash映射,先构造一个长度为2^32的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 2^32-1])将缓存服务器节点放置在这个Hash环上,然后根据需要缓存的数据的Key值计算得到其Hash值(其分布也为[0, 2^32-1]),然后在Hash环上顺时针查找距离这个Key值的Hash值最近的服务器节点,完成Key到服务器的映射查找。

消息队列与异步架构

背景

现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,

但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,

发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待。

优势

1.削峰填谷

2.失败隔离和自我修复

3.解耦

产品介绍

1.RabbitMQ的主要特点是性能好,社区活跃/但是RabbitMQ用Erlang开发,对不熟悉Erlang的同学而言不便于二次开发和维护。(49M)

2.ActiveMQ影响比较广泛,可以跨平台/使用Java开发,对Java比较友好。(27M)

3.RocketMQ是阿里推出的一个开源产品/也是使用Java开发/性能比较好,可靠性也 比较高°(35M)

4.Kafka, LinkedIn出品的’Scala开发’专门针对分布式场景进行了优化’因此分布 式的伸缩性会比较好°(63M)

负载均衡架构

分类

DNS 负载均衡,硬件负载均衡:类似F5 和 A10,软件负载均衡:ngnix

原则

DNS 负载均衡、硬件负载均衡、软件负载均衡,每种方式都有一些优缺点,基于组合的基本原则进行考虑:DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

算法

轮询 : 负载均衡系统收到请求后,按照顺序轮流分配到服务器上。

加权轮询 : 加权轮询是轮询的一种特殊形式,其主要目的就是为了解决不同服务器处理能力有差异的问题

负载最低优先 : 负载均衡系统将任务分配给当前负载最低的服务器

性能最优类 : 负载最低优先类算法是站在服务器的角度来进行分配的,而性能最优优先类算法则是站在客户端的角度来进行分配的

Hash 类 : 负载均衡系统根据任务中的某些关键信息进行 Hash 运算,将相同 Hash 值的请求分配到同一台服务器上

分布式存储

高性能架构

读写分离(一主多从) 分库分表(分片)

高可用架构

双机架构,集群架构,分区架构,异地多活架构

用户头像

花花大脸猫

关注

小小老鼠小小老鼠不偷米大脸猫大脸猫爱吃鱼 2018.05.03 加入

一个默默无闻的码农大叔。。。。

评论

发布
暂无评论
架构师训练营--第五周学习总结