简单认识zookeeper使用场景

       以前看zookeeper只知道是在分布式应用程序环境中起到协调通知的作用,但一直都未在具体项目中应用过。正好最近业务中有这样的场景,就拿来实践了一下。

      业务场景:通过页面将一些人工配置的数据保存下来,客户端通过服务端暴露的restful接口来请求到这些数据。服务端大约20来个节点,当时考虑通过将数据缓存到redis中,然后每个请求过来直接到redis机器上取数据。这些数据大部分时间不会有太大变化,但人工还有可能随时变更,重新保存,而且客户端过来的请求量很大,并且每次请求里面可能都会循环多次去连redis取。考虑到到redis中取虽然是ms级,但是对于大量请求来说开辟连接、网络io对性能来说也是一笔不小的开销。

       考虑使用zk:如果我将这些不是太经常变更的数据直接放进本机的内存对象里面,取的时候读本机内存,那样响应速度将大大提升。但是节点不同,对象也不同,如何保证数据一致。此时可以考虑到zk的监听机制。利用内存对象 、redis、zk实现不同节点数据同步。保存数据时候可以存入redis中,同时创建一个zk临时节点并塞入当前时间戳数据。监听端,创建zk监听机制,当需要人工重新更改配置数据时候,将会引起zk的节点发生变化,此时zk及时监听到通知各节点将redis中最新数据存入各个节点对象中,这样就能保证数据是最新的而且一致性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文主要从应用的角度对ZooKeeper做了浅析,试图阐明ZooKeeper是什么、主要应用场景有哪些、常用场景可...
    菜鸟小玄阅读 8,703评论 0 6
  • 转载地址:http://gnucto.blog.51cto.com/3391516/998509 Redis与Me...
    Ddaidai阅读 21,518评论 0 82
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • 恋爱,是一个很复杂的事情。不,准确地说应该是一个看似特别简单实则极其复杂的事情。你永远不会知道你在遇到属于你的那个...
    吃土橙阅读 2,839评论 8 1
  • 那年,他高一。他还不太适应高中的生活,成绩持续下落,直到掉到30多名。为了反追,他牺牲了晚上去食堂吃饭的时间,自...
    河川的猫阅读 3,790评论 0 10

友情链接更多精彩内容