加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 系统 > 正文

微服务架构的四大金刚工具

发布时间:2021-05-27 04:53:39 所属栏目:系统 来源:互联网
导读:缓存 缓存的使用可以说无处不在,从应用请求的访问路径来看,用户 user - 浏览器缓存 - 反向代理缓存- WEB服务器缓存 - 应用程序缓存 - 数据库缓存等,几乎每条
副标题[/!--empirenews.page--]

缓存的使用可以说无处不在,从应用请求的访问路径来看,用户 user -> 浏览器缓存 -> 反向代理缓存-> WEB服务器缓存 -> 应用程序缓存 -> 数据库缓存等,几乎每条链路都充斥着缓存的使用,缓存最直白的解释就是“用空间换时间”的算法。缓存就是把一些数据暂时存放于某些地方,可能是内存,也有可能硬盘。总之,目的就是为了避免某些耗时的操作。我们常见的耗时的操作,比如数据库的查询、一些数据的计算结果,或者是为了减轻服务器的压力。其实减轻压力也是因查询或计算,虽然短耗时,但操作很频繁,累加起来也很长,造成严重排队等情况,服务器抗不住。

distributed-tools 组件提供了一个 CacheEngine 接口,基于 Tair、Redis 分别有不同的实现,具体 CacheEngine 定义如下:

public String get(String key); 

/** 

 * 获取指定的key对应的对象,异常也会返回null 

 * 

 * @param key 

 * @param clazz 

 * @return 

 */ 

public <T> T get(String key, Class<T> clz); 

/** 

 * 存储缓存数据,忽略过期时间 

 * 

 * @param key 

 * @param value 

 * @return 

 */ 

public <T extends Serializable> booleanput(String key, T value); 

/** 

 * 存储缓存数据 

 * 

 * @param key 

 * @param value 

 * @param expiredTime 

 * @param unit 

 * @return 

 */ 

public <T extends Serializable> booleanput(String key, T value, int expiredTime, TimeUnit unit); 

/** 

 * 基于key删除缓存数据 

 * 

 * @param key 

 * @return 

 */ 

publicbooleaninvalid(String key); 

get 方法针对 key 进行查询, put 存储缓存数据, invalid 删除缓存数据。

限流

在分布式系统中,尤其面对一些秒杀、瞬时高并发场景,都需要进行一些限流措施,保证系统的高可用。通常来说限流的目的是通过对并发访问/请求进行限速,或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以 拒绝服务(定向到错误页或告知资源没有了)、排队 或 等待(比如秒杀、评论、下单)、降级(返回托底数据或默认数据,如商品详情页库存默认有货)。

常见的一些限流算法包括固定窗口、滑动窗口、漏桶、令牌桶,distributed-tools 组件目前基于计数器只实现了固定窗口算法,具体使用方式如下:

/** 

 * 指定过期时间自增计数器,默认每次+1,非滑动窗口 

 * 

 * @param key 计数器自增key 

 * @param expireTime 过期时间 

 * @param unit  时间单位 

 * @return 

 */ 

publiclongincrCount(String key, int expireTime, TimeUnit unit); 

 

/** 

 * 指定过期时间自增计数器,单位时间内超过最大值rateThreshold返回true,否则返回false 

 * 

 * @param key 限流key 

 * @param rateThreshold 限流阈值 

 * @param expireTime 固定窗口时间 

 * @param unit 时间单位 

 * @return 

 */ 

 

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读