• 0755-82538016
  • 0755-82560826
  • 深圳网站建设_APP小程序开发_博纳网络

    • 网站建设案例
      • ";

        营销网站建设

        全网营销网站

        高端网站建设

        商城网站建设

        外贸网站建设

        小程序开发

        区块链开发

        物联网项目开发

        定制app开发

        在线教育网站

        速成网站建设

        服装网站建设

        餐饮网站建设

        珠宝首饰网站

        机械制造网站

        文化旅游网站

        家装建材网站

        美容化妆品网站

        数码产品网站

        模板案例库

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站推广
      • ";

        网站优化基础

        建站优化

        网站优化

        营销推广

        整站优化

        推广帮助

        谷歌搜索

        推广方案

        推广套餐

        推广技巧

        百度排名

        巧用微博推广

        直播视频网站推广法

        微信推广网站方法

        网站外链推广

        公共微信号推广

        网站优化闲谈

        常见问题

        公司资讯

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站制作资讯
      • ";

        网站制作

        外贸网站建设

        网站设计

        网站代运营

        深圳网站建设专栏

        深圳小程序开发

        网站改版

        APP开发

        网站建设方案

        安全维护

        软件开发

        平台搭建

        建站行业资讯

        域名注册

        虚拟主机

        企业邮局

        国外主机

        VPS独享空间

        免备案香港服务器

        如何解析域名

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站报价
      • ";

        网站报价

        建站方案

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 公司动态
      • ";
        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 关注博纳
      • ";

        网站制作精英团队

        网站建设公司愿景

        公司介绍

        主营业务

        博纳文化

        加入博纳

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 联系我们
      • ";

        网站建设公司联系方式

        网站建设、网站制作公司乘车路线

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
      网站制作资讯

      当前位置:

        主页网站制作资讯APP开发社交APP开发聊天功能缓存架构升级实操流程

      社交APP开发聊天功能缓存架构升级实操流程

      发布时间:2018-11-24

      文章编辑:网站建设 文章来源:APP开发 浏览量:次

        我们在开发社交App后台架构的初期,一般采用单台缓存的架构,随着业务的发展,单缓存的架构会受到单机内存限制。在大型的社交App中,虽然没必要把所有的数据都放入缓存,但为了保证核心缓存(保存了用户最近的内容)的命中率达到99%,也需要大量的缓存。单台服务器显然没法满足缓存所有数据的要求。针对这个问题,深圳APP开发公司总结出以下解决方案:
      1.布式缓存解决法
       为了解决单机内存受限的问题,社交App后台引入了分布式缓存的架构,如图9- 24所示。
      社交APP开发聊天功能升级解决方案示意图9-24分布式缓存的架构
      后台使用了分布式缓存后,每台缓存服务器缓存总数据量的部分,这时要解决两个问题
      ·后台中有多台缓存服务器,怎么确定某个数据缓存在哪台缓存服务器?
      ·怎样才能让数据均衡地分布到缓存服务器上,以免造成有的缓存服务器缓存的数据多,有的缓存服务器缓存的数据少?
        上面两个问题可用余数hash的方案解决:用服务器的数量除以缓存数据的Key的hash值,余数为对应的缓存服务器的下标编号0例如,对于Key为“jeff”的数据.hash值(Java的hashCode返回值)为3258171,用服务器数目3除以该值,得到余数0,因此该数据存储在“缓存服务器O”。
        余数hash最大的缺点是当增加、减少缓存服务器时,会造成缓存服务器结果的大震荡。例如,缓存服务器从3台变成了4台,对于Key为“jeff”的数据,hash值(Java的hashCode返回值)为3258171,用服务器数目4除以该值,得到余数3,因此把数据从存储在“缓存服务器0”变为存储在“缓存服务器3”,如图9-25所示。
      社交APP开发聊天功能缓存升级方案示意图9-25 Key为"jeff”的数据命中缓存服务器的不同情况
        我们APP开发爱好者可以计算出来,当缓存服务器的数目从3台升到4台,大约有75% (3/4)被缓存的数据不能命中缓存服务器,随着服务器集群规模的增大,这个比值会不断加大,整体的命中率下降得非常快。
        在App后台中,大部分业务请求所需的数据是通过缓存获取的,只有少部分请求会穿透到数据库,因此数据库的负载能力是按照缓存承担了大部分请求的情况设计。当因为增加缓存服务器造成缓存没法命中,大量的业务请求穿透到数据库会造成数据库的压力过大,甚至造成数据库宕机,从而使业务瘫痪,这个结果显然是不能接受的。
        为了使新增缓存服务器不至于影响大部分缓存的命中率,需要使用“一致性hash算法”这种更合理的hash算法。
        一致性哈希算法是1997年由麻省理工学院提出的种分布式哈希(DHT)实现算法。其基本原理是构造个长度为0—4294967296的圆环(称为一致性hash环),根据缓存服务器名称的hash值(分布范围是。-4294967296)把缓存服务器放置在这个hash环上。当缓存的请求到达,根据缓存数据的Key计算得到其hash值(分布范围同样是0-4294967296),根据这个hash值判断缓存数据是否命中缓存服务器,如果没有命中缓存服务器,则顺时针在hash环上查找距离这个Key的hash值最近的缓存服务器。
        APP开发公司下面举个例子说明一致性哈希算法的工作流程。在一致性哈希环下,存在3台缓存服务器的情况,Key值是“jeff”的数据命中缓存服务器的情况如图9-26所示。
        按照一致性哈希算法(顺时针查找的特性),在只有3台缓存服务器的时候.hash值范围是(3294967296 - 4294967296,0~1294967296)的Key都会命中缓存服务器0。
        当缓存服务器从3台加至4台,Key值是“jeff”的数据命中缓存服务器的情况如图9-27所示。
      社交APP开发升级示意图9-27增加缓存服务器后的一致性啥希环
        当增加了一台缓存服务器4(11ash值是1094967296)后,hash值范围是3294967296- 4294967296,0--1094967296)的Key会命中缓存服
      务器4.hash值范围是1094967297'-1294967296的Key会命中缓存服务器0。因此可看出,在使用一致性哈希算法的情况下,增加了一台缓存服务器后命中率受影响的Key只有[(4294967296-3294967296)+(1094967296-0)]/4294967296=0. 2549=25.49%.这个数值比起之前余数hash75%的值少多了。
        但一致性哈希算法还有问题:新增了台缓存服务器4后,原来落在缓存服务器。的请求现在由缓存服务器4和缓存服务器。共同承担,但落在缓存服务器3和缓存服务器2上的请求不变,这就意味着缓存服务器3和缓存服务器2缓存的数据量和负载压力比起缓存服务器4和缓存服务器0重多了。如果4台缓存服务器的配置都是一样,那么这个结果是不理想的,没法充分利用每台缓存服务器。
        该问题可以通过引入虚拟节点解决。在上面的例子中,一台缓存服务器只对应一个hash值,如果杷台缓存服务器对应两个hash值(一个真实节点,一个虚拟节点),甚至是多个hash值(多个虚拟节点)呢?这样新加入台缓存服务器,将会均匀地影响已经存在的缓存服务器并分摊原来服务器集群中的负载。新的一致性哈希算法环如图9-28所示。
      好了,APP开发公司本文关于我们在社交APP升级开发时的解决方案就分享到这里,希望能给你的APP开发工作带来帮助,谢谢关注,博纳网络编辑整理。

      当前文章链接:/construction/appkaifa/1797.html
      上一篇:聊天类型APP项目开发经验之数据库架构 下一篇:社交APP开发升级聊天功能数据库架构与定位解决方法
      返回列表
      如果您觉得案例还不错请帮忙分享:

      [声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。

      相关案例推荐

      • VCEO同筹

        VCEO同筹

        商城门户

        VCEO同筹

      • 美爱美

        美爱美

        商城门户

        美爱美

      • FWCARD行业网站建设作案例

        FWCARD行业网站建设作案例

        行业网站

        FWCARD行业网站建设作案例

      资讯分类

      • 网站制作
      • 外贸网站建设
      • 网站设计
      • 网站代运营
      • 深圳网站建设专栏
      • 深圳小程序开发
      • 网站改版
      • APP开发
      • 网站建设方案
      • 安全维护
      • 软件开发
      • 平台搭建
      • 建站行业资讯
      • 域名注册
      • 虚拟主机
      • 企业邮局
      • 国外主机
      • VPS独享空间
      • 免备案香港服务器
      • 如何解析域名

      最新发布

      • 社区APP开发上线后影响用户使用的粘性有哪些?
      • 为什么说大健产业O2OAPP开发潜力无限
      • 网络公司对社区O2OAPP开发基本认识
      • 工业4.0时代怎样做好一个APP的开发工作?
      • APP开发公司分析APP应用开发下一个巨头在哪些领域?
      • APP电子商务平台开发前景如何?
      • 社交类型APP开发需要具备的五个必要条件
      • 社交类型APP平台开发使用小程序还是APP模式好?
      • 使用HTML语言开发APP商城可以吗?
      • 社区O2OAPP开发的方向选择

      相关资讯

      • APP网站制作流程以及栏目分布
      • 企业网站优化人员面对搜索引擎的困惑
      • 企业门户网站如何做好针对搜索引擎的优化工作
      • APP/PC购物商城网站如何做好产品图片的优化技巧
      • 网站软文内容以及网站外链存在的几种形式对网站有多大影响
      • 如何做好网站软文标题的描述更适合搜索引擎的需要?
      • 网站建设好后期出现被搜索引擎降权的几个主要因素
      • 小程序开发制作前途取决于市场,别被您的同行抢了先机
      • APP开发公司提醒您关注:电商平台要求商家“二选一”引多方不满 专家提建议
      • APP为什么会在我们的手机界面上变成僵尸图标?

      热门搜索

      • 网站代运营
      • app网站建设
      • 公司网站建设
      • 福田网站建设
      • 深圳网站建设
      • 公司网站制作
      • 手机网站建设
      • 教育网站建设
      • 手机网站制作
      • 网站制作

      Copyright © 2021 博纳网络 版权所有  粤ICP备17054727号

      • 🏠

        首页

      • 💬

        咨询

      • 📞

        通话

      • 📂

        案例

      • ⬆

        返回