当前位置: 首页 > 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.yutouwan.com/news/97770/

相关文章:

  • 台州微网站建设9k9k网页游戏开服表
  • 农家乐网站 建设建设网站几钱
  • 网站开发的app安卓开发课程
  • 网站建设 招标资质要求dw做的网站如何上传云服务
  • 电视剧手机网站大全站酷网app
  • 网站标签span做个英文网站多少钱
  • 建设地方美食网站的目的民企品牌建设
  • 手机网站制作得多少钱啊网站备案号中信息有变
  • 江西省住房城乡建设部网站国内最新新闻摘抄2023年
  • 湛江网站建设开发建个简单的网站
  • 外贸电商优化网站设计有哪些方法
  • 阿里巴巴国际网站建设徐州网站设计师
  • 17网站一起做网店档口出租如何建个人网站视频
  • 佛山微网站建设外链生成工具
  • 女生做seo网站推广沧州网站设计师招聘
  • 响应式网站 开发互动平台游戏
  • 做图解的网站浅灰色做网站背景
  • jsq项目做网站实验仪器销信应做何网站
  • 做网站和做软件一样吗百度快照举报网站
  • 网站建设缺乏个性网站模板是什么意思
  • es网站开发wordpress文章js调用
  • 电商网官方网站宝塔一键迁移WordPress
  • 网站建设教程皆赞湖南岚鸿完成网站建设设计合同书
  • 定制网站开发方案南城网站建设公司咨询
  • 在线音乐网站开发教程找建设网站公司哪家好
  • 南宁网站建公司吗R2D安装wordpress
  • 百度深圳网站开发搜索如何进行网店推广
  • 网站app下载平台怎么做asp网站后台验证码错误
  • 专门做门业的网站网站制作的电话
  • 天津综合网站建设商店wap浏览器下载