当前位置: 首页 > news >正文

做本地网站赚钱吗小米的推广软文

做本地网站赚钱吗,小米的推广软文,外贸网站seo公司排名,做阀门的英文网站怎么写系列: zookeeper快速入门一:zookeeper安装与启动-CSDN博客 zookeeper快速入门二:zookeeper基本概念-CSDN博客 zookeeper快速入门三:zookeeper的基本操作 zookeeper快速入门四:在java客户端中操作zookeeper-CSDN博客…

系列:

 zookeeper快速入门一:zookeeper安装与启动-CSDN博客

zookeeper快速入门二:zookeeper基本概念-CSDN博客

zookeeper快速入门三:zookeeper的基本操作

zookeeper快速入门四:在java客户端中操作zookeeper-CSDN博客


经过前面四章的讲解,我们已经对zookeeper建立起初步的概念,这篇文章就来做一个小小的实践,用zookeeper实现一个简单版的服务注册与发现中心。

zookeeper的一个常见功能就是作为服务注册与发现中心。

我们先创建一个节点/services。

        Stat stat = zkClient.exists("/services",false);if (stat == null ){zkClient.create("/services","".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);}

每当有一个服务上线时,我们就向我们的服务注册与发现中心zookeeper注册我们的应用。

比如,我们注册一个user服务,服务地址是localhost:8080,那么我们就在/services下面建立一个user子节点,子节点数据为user服务的真实url地址,比如localhost:8080,子节点类型为临时节点。

    public void registerService()throws Exception{zkClient.create("/services/user","localhost:8080".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL);}

当我们向user请求服务时,首先通过/services节点获取user服务,判断user服务是否存在。进而获取它的地址,发起真正的请求。同时,我们注册一个监听事件,监听节点的状态变化。当user服务出现故障或其他因素而下线时,/services/user节点会被删除,zookeeper server会通知到监听这个节点的客户端,从而使客户端做出自己的响应,同样的,当user服务上线或地址修改,客户端也能收到通知。

    public void invokeUserService()throws Exception{Stat stat = zkClient.exists("/services/user",false);if (stat == null){System.out.println("未能找到user服务,服务未注册或已下线");}byte[] url = zkClient.getData("/services/user", new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {if (watchedEvent.getType() == Event.EventType.NodeDeleted){System.out.println("服务下线");
//                    处理业务逻辑}if (watchedEvent.getType() == Event.EventType.NodeCreated){System.out.println("服务上线");
//                    处理业务逻辑}if (watchedEvent.getType() == Event.EventType.NodeDataChanged){System.out.println("服务地址修改了");}}}, null);
//        处理业务逻辑System.out.println("向"+new String(url)+"发起请求");}

如果对前面有印象的话,应该记得zookeeper的watcher只触发一次,当节点状态改变一次之后,节点状态的第二次改变就不能监听到了。为了能够持续监听,我们需要修改一下我们的代码。

我们把判断服务上线的代码挪到上面来,并且在下面的监听事件里回调invokeUserService方法,实现持续监听的功能。

为了简单易懂,这里代码写得并不够好,如果是实际项目,需要再做点拆分与封装。

    public void invokeUserService()throws Exception{Stat stat = zkClient.exists("/services/user",false);if (stat == null){System.out.println("未能找到user服务,服务未注册或已下线");zkClient.exists("/services/user", new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {if (watchedEvent.getType() == Event.EventType.NodeCreated){System.out.println("服务上线");
//                    处理业务逻辑}}});}else{byte[] url = zkClient.getData("/services/user", new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {if (watchedEvent.getType() == Event.EventType.NodeDeleted){System.out.println("服务下线");
//                    处理业务逻辑}if (watchedEvent.getType() == Event.EventType.NodeDataChanged){System.out.println("服务地址修改了");}try {invokeUserService();}catch (Exception e){}}}, null);
//        处理业务逻辑System.out.println("向"+new String(url)+"发起请求");}}

zookeeper作为一个分布式协调框架,它的创建就是为了方便或者简化分布式应用的开发。除了服务注册与发现之外,它还能够提供更多的功能,但是对于入门来说,简单的了解到这里就已经足够了。下面会讲zookeeper的架构设计与原理,比如zookeeper的原子协议,leader选举算法等。

http://www.hkea.cn/news/823290/

相关文章:

  • 哪些客户需要做网站推广平台排名前十名
  • 团购的网站扣佣金分录怎么做厦门百度竞价
  • 国家疫情最新政策麒麟seo外推软件
  • 河南第二波疫情最新消息淘宝关键词优化技巧教程
  • 优化好的网站做企业网站百度代理公司
  • 外贸b2c网站如何做推广百度电话人工服务
  • 百度怎样做网站并宣传网站2023上海又出现疫情了
  • wordpress后台登录慢阳山网站seo
  • 深圳网站建设企网络推广运营途径
  • 给自己女朋友做的网站yandex搜索引擎
  • 购物网站建设教程怎么在网上做广告宣传
  • 冠县做网站推广网站怎么制作
  • 开封 网站建设苹果被曝开发搜索引擎对标谷歌
  • 东莞虎门高铁站百度客户端电脑版下载
  • 建网站怎么挣钱的学seo推广
  • 自如网站做的好 服务哪个网站学seo是免费的
  • 国外网站阻止国内访问怎么做竞价推广工具
  • 建设一个网站需要哪些方面的开支百度人工客服
  • 品牌网站建设-建站之路最新疫情新闻100字
  • 东莞网站优化科技有限公司怀柔网站整站优化公司
  • 郑州网站建设联系方式外链是什么意思
  • 用wordpress做网站教程电脑优化大师有用吗
  • 佛山企业网站制作今日热点新闻事件
  • 企业网站网络推广黑帽seo培训
  • 欧美做的爱爱网站有哪些广告推广赚钱
  • 泉州网站建设工作室谷歌seo价格
  • 国建设委员会网站百度推广一天烧几千
  • 做网站 花园路国贸营销推广方案包括哪些内容
  • 做商城网站哪里买口碑营销属于什么营销
  • 鞋子 东莞网站建设真正的免费建站在这里