![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分布式相关
分布式相关
深度学习推荐算法
用技术提升美好事物发生的概率。
展开
-
消息队列
一、消息模型点对点消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。发布/订阅消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。发布与订阅模式和观察者模式有以下不同:观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,生产者与消费者不知道对方的存在,它们之间通过频道进行通信。观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,生产者向频道发送一个消息之后,就不需要关心消费者何时去原创 2020-07-03 19:34:36 · 2638 阅读 · 0 评论 -
系统设计基础
一、性能性能指标1. 响应时间指某个请求从发出到接收到响应消耗的时间。在对响应时间进行测试时,通常采用重复请求方式,然后计算平均响应时间。2. 吞吐量指系统在单位时间内可以处理的请求数量,通常使用每秒的请求数来衡量。3. 并发用户数指系统能同时处理的并发用户请求数量。在没有并发存在的系统中,请求被顺序执行,此时响应时间为吞吐量的倒数。例如系统支持的吞吐量为 100 req/s,那么平均响应时间应该为 0.01s。目前的大型系统都支持多线程来处理并发请求,多线程能够提高吞吐量以及缩短响应时原创 2020-07-02 22:24:40 · 162 阅读 · 1 评论 -
分布式
一、分布式锁在单机场景下,可以使用语言的内置锁来实现进程同步。但是在分布式场景下,需要同步的进程可能位于不同的节点上,那么就需要使用分布式锁。阻塞锁通常使用互斥量来实现:互斥量为 0 表示有其它进程在使用锁,此时处于锁定状态;互斥量为 1 表示未锁定状态。1 和 0 可以用一个整型值表示,也可以用某个数据是否存在表示。数据库的唯一索引获得锁时向表中插入一条记录,释放锁时删除这条记录。唯一索引可以保证该记录只被插入一次,那么就可以用这个记录是否存在来判断是否存于锁定状态。存在以下几个问题:原创 2020-07-02 22:19:02 · 74 阅读 · 0 评论 -
集群
一、负载均衡集群中的应用服务器(节点)通常被设计成无状态,用户可以请求任何一个节点。负载均衡器会根据集群中每个节点的负载情况,将用户请求转发到合适的节点上。负载均衡器可以用来实现高可用以及伸缩性:高可用:当某个节点故障时,负载均衡器会将用户请求转发到另外的节点上,从而保证所有服务持续可用;伸缩性:根据系统整体负载情况,可以很容易地添加或移除节点。负载均衡器运行过程包含两个部分:根据负载均衡算法得到转发的节点;进行转发。负载均衡算法1. 轮询(Round Robin)轮询算法把每原创 2020-07-02 22:09:18 · 139 阅读 · 0 评论 -
缓存
一、缓存特征命中率当某个请求能够通过访问缓存而得到响应时,称为缓存命中。缓存命中率越高,缓存的利用率也就越高。最大空间缓存通常位于内存中,内存的空间通常比磁盘空间小的多,因此缓存的最大空间不可能非常大。当缓存存放的数据量超过最大空间时,就需要淘汰部分数据来存放新到达的数据。淘汰策略FIFO(First In First Out):先进先出策略,在实时性的场景下,需要经常访问最新的数据,那么就可以使用 FIFO,使得最先进入的数据(最晚的数据)被淘汰。LRU(Least Recent原创 2020-07-02 22:00:35 · 136 阅读 · 0 评论