前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「小程序JAVA实战」zookeeper简介(71)

「小程序JAVA实战」zookeeper简介(71)

作者头像
IT架构圈
发布2019-07-08 10:23:37
4200
发布2019-07-08 10:23:37
举报
文章被收录于专栏:IT架构圈

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「小程序JAVA实战」zookeeper简介(71)上一篇: 「小程序JAVA实战」小程序的留言和评价功能(70)已是最新文章 如果一个应用在操作自身,自身的删除和添加的方式很容易让自己知道。如果是小程序后端一个程序,web端一个程序,他们需要进行通信。如果彼此之间自动的一致呢。如果是数据库可以通过共用一个数据库的方式,如果是文件就要用到一个工具zookeeper了。

方式多种多样

  • Springboot开放接口,ssm调用其完成同步工作。

这样是有弊端的,耦合度比较高。

  • 使用MQ消息队列,生产者(SSM)调用消费者(Springboot)

这个可以达到解耦的方式

  • 使用Zookeeper,Springboot监听并且下载

使用springboot 将我们小程序的后端,去监听zookeeper的服务,如果我们ssm上传一个文件,就会像我们的zookeeper server,写入一个对象写入一个文本,springboot监听到这个动作,就会下载,像这种就像是一个集群,每个server就相当于一个节点,每个服务就会监听到我们的节点,当有节点的写入或者删除,springboot就会执行操作。

zookeeper 动物管理员

  • 俗语入门

动物园里面有很多的对象,大象,猪,蜜蜂(hadoop,pig,hive)搞过大数据的老铁对着应该都有所了解。当然zookeeper在分布式系统中也起到了非常大的作用,不仅仅是在大数据,在java中用到了很多,配合一些中间件,比如solr都是可以相互进行配合的。

  • 简介
  1. 中间件,提供协调服务
  2. 作用于分布式系统,发挥其优势,可以为大数据提供服务。
  3. 支持java,提供java和c语言的客户端接口api

什么是分布式系统

对外是隐形的,对外是显形的,内部的开发老铁肯定是知道有多少台机器,对于用户来讲我们只点一个按钮完成这个操作就可以了。

  • 很多台计算机组成一个整体,一个整体一致对外并且处理同一个请求
  • 内部的每台计算机都可以相互之间通信(rest/rpc)
  • 客户端到服务端的一次请求到响应结束会经历多台计算机(我们在网购的时候,下个单子,可以经历很多,订单服务,商品服务,支付服务。一连串的服务完成下单的所有流程,组成的整体的分布式系统)

zookeeper的常用java客户端

  • 原生api

使用起来相对麻烦,不是很方便。 超时重连,不支持自动,需要手动操作。 watch注册一次后会失效,只能注册一次,监听一次。 不支持递创建节点

  • zkclient

国外的IT高手合作开发的,只不过相对来说维护的频率不是很高,已经很久不维护了。使用的人比较少

  • Apache curator

非常好用的java客户端。 Apache的开源项目 解决watcher的注册一次就失效的问题 Api更加简单方便 提供更多提供方案并且实现简单:比如分布式锁。 提供常用的zookeeper工具类 编程风格更爽,函数式的编程

Apache curator如何创建的客户端

  • 创建重试策略 - retryPolicy
  • 创建客户端 - client
  • 初始化客户端

PS:下次通过代码的形式来说下,了解下如何创建客户端

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方式多种多样
  • zookeeper 动物管理员
  • 什么是分布式系统
  • zookeeper的常用java客户端
  • Apache curator如何创建的客户端
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档