
分布式
卧虫呀
这个作者很懒,什么都没留下…
展开
-
负载均衡
负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力,如果有服务down掉,分担请求到其他服务,增加系统的健壮性。大家熟知的nginx可以实现负载均衡,除他之外,常用的SOA(面向服务的架构)框架Dubbo和Spring Cloud也有负载均衡策略,他们有什么不同呢,下面来看一下nginx实现负载均衡,是把请求拦到后台服务之前,根据配置的策略选择后台服务,再进行分发;轮询分派upstream loop{原创 2020-07-07 23:40:09 · 530 阅读 · 0 评论 -
限流实现之窗口计数
该种实现方案采用注解的方式,可根据需要灵活配置,但是缺点也很明显,不能均匀限流,配置不当的话,短时间可能会有大量请求涌入后端,具体效果也在摸索中,发现不足请多交流,好了,废话少说,放码过来!环境:springboot redis<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId&原创 2020-07-04 21:59:50 · 326 阅读 · 0 评论 -
限流算法概述
限流的算法有哪些?简单介绍 4 种非常好理解并且容易实现的限流算法!固定窗口计数器算法规定我们单位时间处理的请求数量。比如我们规定我们的一个接口一分钟只能访问10次的话。使用固定窗口计数器算法的话可以这样实现:给定一个变量counter来记录处理的请求数量,当1分钟之内处理一个请求之后counter+1,1分钟之内的如果counter=100的话,后续的请求就会被全部拒绝。等到 1分钟结束后,将counter回归成0,重新开始计数(ps:只要过了一个周期就讲counter回归成0)。这种限流转载 2020-07-04 16:53:03 · 182 阅读 · 0 评论 -
分布式id生成方案
ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个单独的机制来负责生成唯一ID,生成出来的ID也可以叫做分布式ID,或全局ID。下面来分析各个生成分布式ID的机制转载 2020-07-04 16:43:23 · 154 阅读 · 0 评论 -
redis实现分布式锁
一、分布式锁简介锁是一种用来解决多个执行线程访问共享资源错误或数据不一致问题的工具。如果把一台服务器比作一个房子,那么线程就好比里面的住户,当他们想要共同访问一个共享资源,例如厕所的时候,如果厕所门上没有锁...更甚者厕所没装门...这是会出原则性的问题的..装上了锁,大家用起来就安心多了,本质也就是同一时间只允许一个住户使用。而随着互联网世界的发展,单体应用已经越来越无法满足复杂互联网的高并发需求,转而慢慢朝着分布式方向发展,慢慢进化成了更大一些的住户。所以同样,我们需要...原创 2020-07-03 23:44:47 · 462 阅读 · 0 评论