美文网首页
Memcached-探索Memcached-Java-Clien

Memcached-探索Memcached-Java-Clien

作者: 想做安徒生 | 来源:发表于2018-04-07 11:15 被阅读0次

1.探索版本

image.png

2.我们找到目标方法

image.png

3.追寻源码的踪迹至AscIIClient(这是一个实现了 memcache协议的客户端,具有较高的效率,官方不建议直接使用这客户端,建议使用包装类MemCachedClient)

image.png

4.继续探索下去,最关键最核心的一步出现了,根据key、hashCode

image.png

SchoonerSockIOPool是什么东西呢?从文档注释来看,这是一个与服务端通信的长连接池

  • This class is a connection pool for maintaning a pool of persistent

  • connections

  • to memcached servers.

image.png

来瞄一眼它的初始化。它的初始化是依赖另一个类com.whalin.MemCached.SockIOPool的初始化方法

image.png

又绕回了 SchoonerSockIOPool的初始化方法

image.png image.png image.png

populateConsistentBuckets 这个就是我们今天分析的重点,这是初始化客户端时进行 对server进行一致性hash分布的一个方法,使用TreeMap进行模拟分布圆环。

image.png image.png

再来看,get 方法链路最核心的一步,获取key所在的那个桶。

image.png image.png

findPointFor()找到对应hash所在的桶,用的还是 TreeMap的 TailMap 方法,返回hash值等于大于hash(key)的最小server作为存储该key数据的目标server所对应的分布ke.

image.png

拿到对应的 server地址,获取 connection链接,完毕~~~

image.png

相关文章

  • Memcached-探索Memcached-Java-Clien

    1.探索版本 2.我们找到目标方法 3.追寻源码的踪迹至AscIIClient(这是一个实现了 memcache协...

  • 探索

    探索是本能 探索是实力 探索是付出 探索人生 探索自然 探索结果 为我所用 探索没有最好 只有更好 探索没有终点 ...

  • 我是探索

    探索这个宇宙,探索自身小宇宙 。 探索星辰大海。

  • 探索的探索

    观念和印象的本质 印象的形成 意识的本质 文化的传播 行为的控制记忆的本质 创新传播,营销, 理清多感根本诉求,并...

  • 我们想知道的为什么不止十万个

    人类对于未知总是充满着渴望,渴望探索宇宙,探索生命的意义,探索幽灵,探索人心底的秘密,探索人类的起源……人有无...

  • iOS 底层探索 - 类

    iOS 底层探索系列iOS 底层探索 - alloc & initiOS 底层探索 - calloc 和 is...

  • 植物创意摄影042——探索

    蜜蜂 探索 花粉 梵高 探索 画境 数学家 探索 斐波那契数列 花艺师 探索 面状花材 吃货 探索 葵花籽 只要你...

  • iOS 底层探索 - 应用加载

    iOS 底层探索系列iOS 底层探索- alloc & initiOS 底层探索 - calloc 和 isaiO...

  • iOS 底层探索 - 消息转发

    iOS 底层探索系列iOS 底层探索- alloc & initiOS 底层探索 - calloc 和 isaiO...

  • iOS 底层探索 - KVO

    iOS 底层探索系列iOS 底层探索 - alloc & initiOS 底层探索 - calloc 和 isai...

网友评论

      本文标题:Memcached-探索Memcached-Java-Clien

      本文链接:https://www.haomeiwen.com/subject/evzehftx.html