45

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

 5 years ago
source link: https://idig8.com/2019/01/27/xiaochengxujavashizhanzookeeperjianjie71/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如果一个应用在操作自身,自身的删除和添加的方式很容易让自己知道。如果是小程序后端一个程序,web端一个程序,他们需要进行通信。如果彼此之间自动的一致呢。如果是数据库可以通过共用一个数据库的方式,如果是文件就要用到一个工具zookeeper了。

7rIBZzB.png!web

方式多种多样

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

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

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

    这个可以达到解耦的方式

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

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

###zookeeper 动物管理员

* 俗语入门

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

vURbYnU.png!web

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

什么是分布式系统

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

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

7vQnyyf.png!web

zookeeper的常用java客户端

  • 原生api

    使用起来相对麻烦,不是很方便。

    超时重连,不支持自动,需要手动操作。

    watch注册一次后会失效,只能注册一次,监听一次。

    不支持递创建节点

    • zkclient

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

    • Apache curator

      非常好用的java客户端。

      Apache的开源项目

      解决watcher的注册一次就失效的问题

      Api更加简单方便

      提供更多提供方案并且实现简单:比如分布式锁。

      提供常用的zookeeper工具类

      编程风格更爽,函数式的编程

n2yyyev.png!web

Apache curator如何创建的客户端

  • 创建重试策略 – retryPolicy
  • 创建客户端 – client

  • 初始化客户端

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

>>原创文章,欢迎转载。转载请注明:转载自,谢谢!>>原文链接地址:上一篇:

下一篇:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK