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

iis搭建网站404海淀网站建设价格

iis搭建网站404,海淀网站建设价格,腾讯域名注册官网,网络设计师未来人生规划此文章#xff0c;实现python 版本的分布式锁#xff0c;java版本的可以使用curator很容易实现#xff0c;python版本如下在做分布式系统开发的时候#xff0c;分布式锁可以说是必需的一个组件。最近做了一些调研和尝试#xff0c;经过对比#xff0c;基于ZooKeeper的分布… 此文章实现python 版本的分布式锁java版本的可以使用curator很容易实现python版本如下在做分布式系统开发的时候分布式锁可以说是必需的一个组件。最近做了一些调研和尝试经过对比基于ZooKeeper的分布式锁还是很不错的。 参照了IBM的一个帖子https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/其中有一段话描述了ZooKeeper的共享锁即分布式锁实现如下共享锁在同一个进程中很容易实现但是在跨进程或者在不同 Server 之间就不好实现了。Zookeeper 却很容易实现这个功能实现方式也是需要获得锁的 Server 创建一个 EPHEMERAL_SEQUENTIAL 目录节点然后调用 getChildren方法获取当前的目录节点列表中最小的目录节点是不是就是自己创建的目录节点如果正是自己创建的那么它就获得了这个锁如果不是那么它就调用 exists(String path, boolean watch) 方法并监控 Zookeeper 上目录节点列表的变化一直到自己创建的节点是列表中最小编号的目录节点从而获得锁释放锁很简单只要删除前面它自己所创建的目录节点就行了。 通过这段话大概可以明白其原理。下面我主要写一下基于Python的分布式锁实现。实现Google了一下有个叫Kazoo的python开源包很好的实现了对ZooKeeper的支持。Kazoo is a Python library designed to make working with Zookeeper a more hassle-free experience that is less prone to errors. 链接如下https://kazoo.readthedocs.org/en/latest/GitHub地址: https://github.com/python-zk/kazoo  首先我们去GitHub下载其源码包。解压缩之后进行安装python setup.py install OK准备工作完成一切尽在代码中文件名zk_lock.py#!/usr/bin/env python2.7   # -*- coding:utf-8 -*-   #   #   Author  :   yunjianfei   #   E-mail  :   yunjianfei1987gmail.com   #   Date    :   2014/12/09   #   Desc    :   #  import logging, os, time   from kazoo.client import KazooClient   from kazoo.client import KazooState   from kazoo.recipe.lock import Lock  class ZooKeeperLock():  def __init__(self, hosts, id_str, lock_name, loggerNone, timeout1):  self.hosts  hosts  self.id_str  id_str  self.zk_client  None  self.timeout  timeout  self.logger  logger  self.name  lock_name  self.lock_handle  None  self.create_lock()  def create_lock(self):  try:  self.zk_client  KazooClient(hostsself.hosts, loggerself.logger, timeoutself.timeout)  self.zk_client.start(timeoutself.timeout)  except Exception, ex:  self.init_ret  False  self.err_str  Create KazooClient failed! Exception: %s % str(ex)  logging.error(self.err_str)  return  try:  lock_path  os.path.join(/, locks, self.name)  self.lock_handle  Lock(self.zk_client, lock_path)  except Exception, ex:  self.init_ret  False  self.err_str  Create lock failed! Exception: %s % str(ex)  logging.error(self.err_str)  return  def destroy_lock(self):  #self.release()  if self.zk_client ! None:  self.zk_client.stop()  self.zk_client  None  def acquire(self, blockingTrue, timeoutNone):  if self.lock_handle  None:  return None  try:  return self.lock_handle.acquire(blockingblocking, timeouttimeout)  except Exception, ex:  self.err_str  Acquire lock failed! Exception: %s % str(ex)  logging.error(self.err_str)  return None  def release(self):  if self.lock_handle  None:  return None  return self.lock_handle.release()  def __del__(self):  self.destroy_lock()  def main():  logger  logging.getLogger()  logger.setLevel(logging.INFO)  sh  logging.StreamHandler()  formatter  logging.Formatter(%(asctime)s -%(module)s:%(filename)s-L%(lineno)d-%(levelname)s: %(message)s)  sh.setFormatter(formatter)  logger.addHandler(sh)  zookeeper_hosts  192.168.10.2:2181, 192.168.10.3:2181, 192.168.10.4:2181  lock_name  test  lock  ZooKeeperLock(zookeeper_hosts, myid is 1, lock_name, loggerlogger)  ret  lock.acquire()  if not ret:  logging.info(Cant get lock! Ret: %s, ret)  return  logging.info(Get lock! Do something! Sleep 10 secs!)  for i in range(1, 11):  time.sleep(1)  print str(i)  lock.release()  if __name__  __main__:  try:  main()  except Exception, ex:  print Ocurred Exception: %s % str(ex)  quit()测试的时候只需要改一下“zookeeper_hosts ”这个参数改为你自己的ZooKeeper的server地址即可. 将该测试文件copy到多个服务器同时运行就可以看到分布式锁的效果了。转自http://yunjianfei.iteye.com/blog/2164888 转载于:https://blog.51cto.com/5148737/1975603
http://www.huolong8.cn/news/97770/

相关文章:

  • 网站需求分我自己的网站 怎样做防火墙
  • 免费在线做网站视频直播技术
  • 网站系统参数设置seo管理系统易语言
  • 做外卖网站的模板南昌网站建设联系方式
  • 网站虚拟主机聊城的网站制作公司
  • 山东济南网站建设公司排名视频剪辑培训班学费一般多少
  • 做网站要学的东西怎么做网站服务器吗
  • ssh框架做的网站问题站群子网站开发
  • 高端网站建设四川php门户网站源码
  • 在手机上建设网站教程网站建设公司 腾佳
  • 柳州网站建设服务三只松鼠网络营销方案策划书
  • 网站首页做很多个关键词在哪买网站链接
  • 公司注册网站及流程wordpress支持swf播放
  • 网站加载慢图片做延时加载有用取消网站的通知书
  • 异地备案 网站成都软件开发工资一般多少钱
  • 凡客网站规划与建设ppt建筑方案设计包括什么
  • 单页网站如何做现在还有人用asp做网站
  • 怎么做网站公众号成都网站建设 Vr
  • 个人博客网站模板免费网站建设讠金手指科杰
  • 石家庄网站建立网页qq家园
  • 重庆忠县网站建设公司推荐园区网络建设方案
  • 北京手机网站设计价格学做淘宝店的网站
  • 用什么自己做网站吗app开发公司 弙东
  • 曲靖做网站需要多少钱苏州做网站的单位
  • 快速搭建网站后天台佛山营销网站建设制作
  • 六年级做的网站的软件做网站公司的商标需要注册吗
  • 用绿色做图标的网站无锡网站制作优化推广
  • logo网站在线制作要怎么做网站
  • 企业网站建设费属于办公费吗做个营销型网站设计
  • php网站源码建设教程电脑网站兼职在哪里做