欧博代理注册
AG龙虎斗博彩平台投注策略_12 张图 | 硬刚了一波,三层缓存架构
你的位置:| 欧博代理注册 > 欧博真人博彩 > AG龙虎斗博彩平台投注策略_12 张图 | 硬刚了一波,三层缓存架构

AG龙虎斗博彩平台投注策略_12 张图 | 硬刚了一波,三层缓存架构

发布日期:2023-10-30 06:00    点击次数:208

AG龙虎斗博彩平台投注策略_12 张图 | 硬刚了一波,三层缓存架构

AG龙虎斗博彩平台投注策略_ 一、绪论

上一讲咱们讲到了 Eureka 注册中心的 Server 端有三级缓存来保存注册信息澳门金沙骰宝,不错利用缓存的快速读取来提高系统性能。咱们再来细看下:

一级缓存:只读缓存 readOnlyCacheMap,数据结构 ConcurrentHashMap。相配于数据库。

二级缓存:读写缓存 readOnlyCacheMap,Guava Cache。相配于 Redis 主从架构中主节点,既不错进行读也不错进行写。

三级缓存:土产货注册表 registry,数据结构 ConcurentHashMap。相配于 Redis 主从架构的从节点,只肃穆读。

看图更了了,如下图所示:

皇冠客服飞机:@seo3687

三种缓存

另外 ConcurrenthashMap 亦然一种 map 结构,也即是以键值对的样式进行存储,如下图所示:

太平洋官网

Map 结构

本篇悟空哥会带着众人来看下 Eureka 的缓存架构是怎样样,通过学习这篇,咱们也不错模仿 Eureka 的缓存野心念念想,将其愚弄到名目当中。

二、激励的几个念念考

咱们再来看下 Eureka 源码,其实不出丑懂,底下会作念证实。

博彩平台投注策略 默许会先从只读缓存里面找。 莫得的话,再从读写缓存里面找。 找到了的话就更新只读缓存,并复返找到的缓存。 还找不到的话,就从土产货缓存 registry 中加载进来。

带来了三个问题:

(1)三级缓存数据怎样来的?

(2)缓存数据如何更新的?

(3)缓存如何过时?

三、土产货缓存

咱们先来看下土产货缓存 registry,它是一种界说为 ConcurrentHashMap 的数据结构,之前也夺目西席过。

皇冠体育

当客户端发起注册苦求的时候,就会把注册信息放到 registry 中。如下代码所示:

registry.putIfAbsent(app) 澳门金沙骰宝

putIfAbsent 暗示如果存在重迭的 key,就不会放入值,如果传入的 key 对应的 value 仍是存在,就复返存在的 value,不进行替换。

过程 putIfAbsent 操作就把客户端的注册信息放到 registry 中了。

AG龙虎斗

咱们再来看下其中的一种缓存结构:读写缓存。

四、读写缓存

读写缓存,顾名念念义,即是既不错进行读,也不错进行写的缓存。读主如若给只读缓存来读取的。写主如若将缓存更新到我方的 Map 中。

皇冠体育直播

底下辞别从写缓存的旨趣、写缓存的源码、过时时机的旨趣、过时时机的源码几个方面来辞别解答。

4.1 写缓存的旨趣和源码

我初始合计当咱们读缓存读不到的时候,就会去数据库查了。找了半天,没找到读数据库的场地。

然后我就用 IDEA 器具查找 readOnlyCacheMap 被使用的场地,终于让我找到了。

皇冠体育账号

读写缓存用的是 Guava Cache器具类,这篇不会深究。通俗来说即是当拜访读写缓存时,如果这个 key 在缓存中不存在,则从土产货去查,查到后再放回缓存。

然后又达成空洞次序 load(key),这个次序的作用即是当读写缓存中莫得,则从土产货 registry 缓存中拿。

读写缓存过时的时候其实分两种:定时过时和及时过时。由于上头的源码仍是界说了定时过时的时技艺隔,是以咱们先来看定时过时。

4.2 定时过时

当构建这个读写缓存时,就会界说驱逐多久过时通盘读写缓存。如下代码所示,180 s 会定时过时读写缓存。

新2足球登录网址
expireAfterWrite(180s) 

4.3 及时过时

当有新的服求实例进行注册概况下线、发生故障时,就会把这个对应的服求实例的缓存给过时掉。

如下图所示,最上头的是注册中心,底下三个是服求实例。服求实例发生注册、下线、发生故障,注册中心王人是不错感知到的,然后就会主动过时读写缓存对应的服求实例。

4.4 及时过时源码

从源码层面咱们再来看下读写缓存过时的源码。调用了 invalidateCache 次序,进行过时。

文献旅途:com/netflix/eureka/registry/AbstractInstanceRegistry.java

五、只读缓存 5.1 定时更新

只读缓存 readOnlyCacheMap,有一个定时更新的机制,每隔 30 秒就会更新一次只读缓存中的某些 key。

它其实是遍历我方的整个注册信息,然后和读写缓存进行比对,如果注册信息不一致,则替换为读写缓存的数据。

源码如下,有一个定时退换任务,每隔 30 秒退换一次。

5.2 更新

另外当客户端得回注册信息时,欧博体育也会先读只读缓存,如果只读缓存中莫得,则会从读写缓存中找,找到后就放到只读缓存中。如果读写缓存中莫得,则从土产货注册表 registry 中加载到读写缓存中,然后将注册表信息复返。

博乐体育官方入口

这里众人是否有个疑问:既然这个缓存叫作念只读缓存,怎样还能被更新,不应该是不变的吗?

其实这里的不变是相干于客户端来说的,客户端得回注册表信息时,最初始拜访的即是只读缓存,肖似数据库或 Redis 的主从架构,主肃穆读写,从肃穆读。然后系统里面会把主节点的信息同步给从节点。众人阐明了吗?

六、缓存有关成立

底下咱们来看下 Eureka Server 关于缓存有哪些成立呢?

6.1 是否开启只读缓存

eureka.server.useReadOnlyResponseCache

当客户端得回注册信息时,是否先从只读缓存得回。如果为 false,则获胜从读写缓存得回。默许为 true。

6.2 定时更新只读缓存的驱逐时代

eureka.server.responseCacheUpdateIntervalMs

默许每隔 30 秒将读写缓存更新的缓存同步到只读缓存。

七、缓存带来的问题

三级缓存看似不错带来性能的擢升。然则也会引入其他问题,比如缓存不一致问题。

只读缓存每隔 30s 才会刷新一次,和读写缓存会形成数据的不一致,客户端在 30s 内得回的注册表信息是滞后的。

当使用 Eureka 集群时,这种缓存不一致的问题会更赫然,不同的节点之间也会出现只读缓存的数据不一致,是以 Eureka 只可保证高可用,并弗成保证强一致性,也即是保证了 AP,不保证 CP,另外咱们不错采取强一致性的注册中心,比如 Zookeeper、Nacos,这是后续要讲的实质了。

期权

如何缓解不一致的问题呢?

(1)在工作端,咱们不错建设更新只读缓存的时技艺隔,默许是 30 秒,裁减小数,比如 15 秒,频率太高,可能对 Eureka 形成性能问题。

此次投资设立的子公司可满足鑫品晰生产经营的实际需要,对鑫品晰扩展业务规模产生积极作用。对公司而言,该子公司的设立可以优化公司产业结构,降低经营成本,对公司经营绩效产生积极影响。

(2)工作端,咱们也不错考虑关闭从只读缓存读注册表信息,Eureka Client 获胜从读写缓存读取。

八、追想

Eureka Server 注册表三级缓存架构

本篇学习了 Eureka 注册中心 Server 端的三层缓存架构,分为 registry、readOnlyCacheMap、readWriteCacheMap,用来保存工作注册信息。

皇冠体育博彩平台上,你可以享受到最丰富、最热门、最有趣的博彩游戏体验。无论你是喜欢传统博彩还是喜欢现代创新的博彩,我们都有完美的游戏,等待着你的加入。 默许情况下,每隔 30 秒从读写缓存将注册信息更新到只读缓存。 默许情况下,客户端读取注册表时,先从只读缓存读,如果莫得,则从读写缓存中读取,如果照旧莫得,则从土产货注册表 registry 读取。 默许情况下,每隔 180 秒定时过时读写缓存。 服求实例注册、下线、故障时,会及时过时读写缓存。 引入了多级缓存,也会带来缓存不一致的问题。 参考贵寓:

www.passjava.cn

《微工作架构深度贯通》

 

Eureka 源码

 



>> AG龙虎斗博彩平台投注策略_12 张图 | 硬刚了一波,三层缓存架构..

>> 2024年皇冠炸金花博彩网站(www.crownsportsbooka..

>> 平博色碟浩瀚体育投注官网网址是什么啊怎么查_第20届中国动漫金龙奖提名..

>> 开云色碟博彩平台游戏玩法_好意思国芯片抵制欲加码,华为云“上新”盘古3..

>> 欧博体育注册博彩平台登录 | 真服了!杭州这几家街头好意思式汉堡!一周..

>> 直播app博彩平台登录 | 奈何幸免“指鼠为鸭”之类事件重演?..

>> 欧博炸金花博彩平台赔率_“集合强暴药”在多地出现,百位女子被滋扰,40..

>> 太平洋在线百家乐博彩平台赔率_热刺全队身价上升!罗梅罗冲上英超二位!..

>> 亚星现金网网站注册流程问题_花旗集团CFO:裁人将增加本季度支拨 已为..

>> 申博直营网博彩赛车_申花外助巴索戈:我深宠爱上中国 期待重返中超..