自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

转载 Python类中cls和self的区别(staticmethod和classmethod的区别)

1、cls和self的区别: self:类的方法的第一个参数,表示一个具体的实例本身。如果类的方法用了修饰符“staticmethod”,则可以无视这个self,这个方法就当成一个普通的函数使用。 cls:若类方法用修饰符“classmethod”修饰,则cls作为类方法的第一个参数,表示这个类本身。2、staticmethod和classmethod的区别:一般来说,需要将类实例化后...

2020-02-17 09:51:48 1344

原创 zookeeper_init函数使用的注意事项

问题现象调用接口zookeeper_init()成功之后,使用句柄创建znode节点失败。问题分析zookeeper_init()函数原型:ZOOAPI zhandle_t *zookeeper_init(const char *host, watcher_fn fn,int recv_timeout, const clientid_t *clientid, void *context,...

2019-12-04 16:41:56 2053

原创 Zookeeper Watcher机制使用注意事项

1、Watcher机制的特点一次性触发(One-Time Trigger)当设置监视的数据发生改变时,该监视事件会被发送到客户端。例如,如果客户端调用了 getData(“/znode1”, true) ,并且稍后 /znode1 节点上的数据发生了改变或者被删除了,客户端将会获取到 /znode1 发生变化的监视事件,而如果 /znode1 再一次发生了变化,除非客户端再次对 /znod...

2019-12-04 16:28:10 639

原创 Zookeeper C客户端写Znode节点提示:ZCONNECTIONLOSS

写Znode节点提示:ZCONNECTIONLOSS可能的原因:写入Znode节点的数据大小超过1M。

2019-11-15 10:56:39 314

原创 Zookeeper C客户端会话频繁断链和建链分析

Zookeeper C客户端会话频繁断链和建链分析现象分析原因现象在创建会话时注册的监控回调函数中,频繁接收到ZOO_SESSION_EVENT类型的消息,消息的状态是:ZOO_CONNECTING_STATE和ZOO_CONNECTED_STATE。分析根据《Zookeeper分布式过程协同技术详解》中2.3.2章节会话的状态和生命周期中描述:会话状态迁移图当客户端与zookeep...

2019-11-15 10:13:17 335

转载 Zookeeper启动失败,提示:Starting zookeeper ... already running as process

原因:系统检测到你的zookeeper是在启动的状态,这是因为上一次异常关机或断电造成zookeeper没有正常关闭,导致zookeeper-server.pid文件残留。解决办法:1、执行命令:find / -name “zookeeper_server.pid”,找到残留的文件;2、删除这个文件,然后重新启动zookeeper服务即可。...

2019-05-14 17:03:37 11246

原创 Zookeeper启动失败,提示:java.net.BindException: Address already in use

现象:[ ~]$ cat /version/app/wui/zookeeper.out2019-05-08 08:47:13,620 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: /usr/local/zk/bin/…/conf/zoo.cfg2019-05-08 08:47:13,633 ...

2019-05-08 17:14:00 5213

转载 sed命令用法

sed命令用法sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件...

2019-04-29 18:53:47 254

转载 Samba配置文件详解

转自:https://blog.csdn.net/splenday/article/details/47116969Samba的配置文件为/etc/samba/smb.conf配置文件由两部分构成:Global Settings(全局参数)  该设置都是与Samba服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的。Share Definitions(共享参数)  该设置针...

2019-02-28 15:38:45 1106

翻译 ProFTPD:Limit配置

ProFTPD的<Limit>配置部分允许进行强大的细粒度控制,即:允许谁使用哪些FTP命令。 然而,这种能力是以复杂性为代价的。 本文档描述了编写<Limit>部分时要记住的一些事项。优先权也许使用<Limit>最难的地方是理解它的优先级规则,它决定了<Limit>限制何时生效。 首先,Limit指令中有三种类型的参数:“RAW”FTP命令、F...

2019-02-19 19:23:30 967

原创 proftpd服务器搭建

Linxu下搭建proftpd服务器步骤:1、安装proftp:yum install proftpd注意:需要预先配置好yum源2、配置ftp用户和用户组:# groupadd ftptest1# useradd ftptest1 -g ftptest1 -d /home/ftptest1 -s /sbin/nologin# passwd ftptest13、增加上层目录:# ...

2019-02-14 15:12:24 3987

原创 Linux用户(组)相关命令汇总

Linux用户相关:1)添加用户:useradd 用户名2)设置/修改用户密码:passwd 用户名3)添加用户(指定密码):useradd -p 密码 用户名4)添加用户(指定组):useradd -G 组名 用户名5)删除用户:userdel 用户名6)删除用户所有信息:userdel -r 用户名7)查看所有用户:cat /etc/passwdSAMBA用户相...

2019-02-13 14:22:23 137

原创 Python使用XMLRPC远程调用常见错误汇总

错误1:xmlrpclib.Fault: <Fault 1: “<type ‘exceptions.TypeError’>:cannot marshal None unless allow_none is enabled”>原因:远程调用执行的函数无返回值(未完,待补充)...

2019-02-13 14:09:04 3778

原创 yum操作提示错误:There are no enabled repos.

【现象】执行yum命令,比如yum clean all或yum makecache提示如下错误:【解决方案】执行以下两个命令:1)yum repolist all:列出所有的repo源2)sudo yum-config-manager --enable 【repo源名】:使能对应的源...

2019-01-29 15:17:28 33080 4

转载 执行yum提示错误:rpmdb: BDB0113 Thread/process 424227/139826856310848 failed

【问题】在执行yum安装或者其他命令时,有如下提示:【解决办法:重新构建rpm数据库】[root@cly ~]# cd /var/lib/rpm[root@cly rpm]# lsBasenames __db.001 __db.003 Group Name Packages Requirename Sigmd5Conflictnam...

2019-01-29 15:07:46 10051 7

转载 Python利用XMLRPC实现分布式系统

转载:https://blog.csdn.net/abcd1f2/article/details/51351938RPC(远程过程调用):把本地的函数,放到远端去调用。其调用原理是:1)首先A与B之间建立一个TCP连接;2) 然后A把需要调用的方法名以及参数序列化成字节流发送出去;3)B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用并把结果返回;4)...

2019-01-23 17:20:15 352

转载 python import自定义模块

转载:http://www.cnitblog.com/seeyeah/archive/2009/03/15/55440.htmlpython导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径。下面具体介绍几种常见的情况:(1)主程序与模块程序在同一目录下:如下程序结构:若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1...

2019-01-23 16:53:36 1525

转载 MAN QPIDD

QPIDD(1) User Commands QPIDD(1)NAMEqpidd - the Qpid AMQP Message Broker DaemonSYNOPSISqpidd [O...

2019-01-08 09:34:35 235

转载 Python面向对象编程

面向对象编程(OOP:Object Oriented Programming)是一种程序设计思想,它把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向对象的程序设计把计算机程序视为一组对象集合,每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机的执行就是一系列消息在各个对象之间传递。在Python中,所有数据类型都可以视为对象,也可以自定义对象。自定义的对象数据类型...

2019-01-07 19:24:47 150 1

原创 利用NFS共享搭建CTDB集群

0、环境配置:1、安装软件通过yum工具安装ctdb软件2、创建共享存储在node4创建一个共享目录/share,并设置权限777,在/etc/exports文件中添加如下:/share *(sync,rw)然后在节点4上执行如下命令:exportfs -ar注:若出现找不到exportfs命令现象,则需要安装nfs-utils工具3、挂载共享存储在node1、nod...

2019-01-04 16:59:01 1437 2

转载 CTDB配置文件参数解析

CTDB配置文件:/etc/ctdb/conf主要参数的含义:CTDB_NODES:指定包含集群节点IP(内部IP)的文件的位置,通常是/etc/ctdb/nodes文件。集群中每个节点至少配置两个地址:一个为“Private IP”,用于节点间CTDB的心跳即消息同步处理;另一个为“Public IP”,用于客户端访问。/etc/ctdb/nodes 文件列出的IP是节点的“Private ...

2019-01-02 14:40:42 2008

转载 CTDB原理介绍

1、简介CTDB(Cluster Trivial Database)是一种轻量级的集群数据库实现,是集群Samba的集群数据库组件,主要用于处理Samba的跨节点消息以及在所有集群节点上实现分布式的TDB数据库。CTDB的主要功能:1) 提供TDB数据库的集群版本,并在节点故障时自动重建/恢复数据库;2) 监视集群中的节点和每个节点上运行的服务;3) 管理用于向客户端提供服务的公共IP...

2018-12-27 17:26:20 5856 4

转载 libevent库简介

libevent是一个轻量级的基于事件驱动的高性能的开源网络库,支持多个平台(包括:Windows、Linux、Bsd等),对多个平台的I/O复用技术进行了封装。libevent使用select、poll和epoll等系统调用实现I/O复用, 但是针对于多个系统平台上的不同的I/O复用实现方式,libevent进行了重新的封装,并提供了统一的API接口。libevent在实现上使用了事件驱动这种...

2018-12-26 17:09:08 233

转载 CendOS配置本地YUM源

原文地址:https://www.cnblogs.com/wangg-mail/p/4418350.html从CentOS7官网下载DVD中存在需要的大部分软件,所以在没有网络的情况下可以配置yum源为本地的DVD,下载速度快,软件稳定。如果使用虚拟机,那么就在虚拟机中挂载DVD的iso文件。使用如下命令新建一个挂载点并挂载修改yum源配置mkdir /media/CentOSmo...

2018-12-06 10:13:08 213

原创 通过NFS建立YUM源

原文地址:http://blog.chinaunix.net/uid-22331258-id-390604.html环境:两台装有CentOS7.4的机器,一台做YUM服务器,一台做客户端。此试验中需要用到自动挂载机制,即执行yum命令时,客户端会自动挂载服务器端的YUM源。服务器端配置假设服务器的IP地址为192.168.0.1将CD-ROM挂载到/media/RHEL5u3下修改...

2018-12-06 08:51:00 843 1

原创 Linux标准IO库(fopen、fread、fwrite、fprintf、fscanf等)

Linux标准IO库接口定义在stdio.h头文件中,它的使用与底层文件描述符类似,需要先打开一个文件来建立一个访问路径,此操作的返回值将作为其他IO库函数的参数。在标准IO库中,与底层文件描述符对应的是流(stream),它被实现为指向结构FILE的指针。常用的标准I/O库函数如下:1) fopen、fclose2) fread、fwrite3) fflush4) fseek5) ...

2018-12-05 10:53:29 723

转载 block(块),page(页),buffer cache(块缓冲区)之间的关系

原文地址:https://blog.csdn.net/menogen/article/details/32701457关于blok vs page 的可以参考以下一段描述:Storing Blocks in the Page CacheIn old versions of the Linux kernel, there were two different main disk cache...

2018-12-03 13:53:36 2367

转载 Talloc内存池介绍

介绍Talloc是一个层次结构的,包含引用计数和析构机制的内存池系统。它构建于标准C库上,定义了一组接口用以简化数据的申请和回收,尤其是对于那些包含了许多动态申请的元素(比如数组和字符串)的复杂数据结构尤为有效。Talloc库的主要目标是:不必再为每一个复杂的数据结构都单独编写内存释放函数;为申请的内存块提供一个逻辑组织架构;减少长时间运行的应用程序中出现内存泄露的几率。所有这些都依靠在层次结...

2018-11-30 17:04:53 2120

原创 CIFS Server处理流程解析

Samba Server端,存在一个smbd守护进程接收Client端的连接和请求,每建立一个连接,会fork一个子进程。因此,本文主要描述smbd进程的启动以及SMB请求处理过程中函数调用关系。1、概述SMB(Server Message Block)通信协议是微软和英特尔在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表...

2018-11-30 15:41:57 1175

原创 Zookeeper C客户端解析

Zookeeper客户端主要有以下几个核心组件组成:Zookeeper句柄:保存默认Watcher、Zookeeper服务器地址列表等;Adaptor:包含两个线程:I/O线程和Completion线程,其中,I/O线程负责客户端与服务端之间的I/O通信;Completion线程负责处理异步接口的Completion回调。1、客户端初始化Zookeeper客户端的初始化其实就是Zoo...

2018-11-24 16:06:51 1639 1

转载 Zookeeper学习笔记——Zookeeper会话

会话是Zookeeper中的重要概念之一,客户端与服务端之间的任何交互操作都与会话相关,比如:临时节点的生命周期、客户请求的顺序执行、Watcher通知机制等。1、会话状态Zookeeper的会话状态可分为CONNECTING、CONNECTED、RECONNECTING、RECONNECTED和CLOSE等。开始创建Zookeeper句柄时,会话的状态为CONNECTING,同时,客户端会...

2018-11-17 10:33:35 472

转载 Zookeeper学习笔记——Zookeeper系统模型

从数据模型、节点特性、版本、Watcher和ACL五方面分析Zookeeper的系统模型。1、数据模型如图1所示,Zookeeper的数据模型在结构上与Unix文件系统类似,采用树型层次结构,Zookeeper树中每个节点称为Znode。图1 Zookeeper数据模型在Zookeeper中,事务是指能够改变Zookeeper服务器状态的操作,包括数据节点创建/删除、数据节点内容更新以及...

2018-11-17 10:30:13 205

原创 Zookeeper学习笔记——Zookeeper概述

Zookeeper是一个开源的分布式协调服务,由雅虎创建,是Google的Chubby的开源实现。Zookeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。1.1、Zookeeper介绍1.1.1、Zookeeper是什么Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现...

2018-11-17 09:48:29 243

原创 Zookeeper实现分布式锁

Zookeeper分布式锁1、分布式锁分布式锁在一组进程之间提供互斥机制,任何时刻只有一个进程可以持有锁,持有锁的进程就是系统的“领导者”。分布式锁分为两种:独占锁和共享锁:独占锁:所有尝试获取锁的客户端,最终只有一个可以成功获得锁;共享锁:所有尝试获取锁的客户度,最终都会被执行,只是有个全局时序。2、Zookeeper实现独占锁2.1、基本思路利用Znode名称的唯一性,加锁操...

2018-11-09 14:49:13 250

原创 Zookeeper C API应用示例(3)——配置管理(异步API)

场景描述同:https://blog.csdn.net/qq_41688455/article/details/83780854服务端代码如下:#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include

2018-11-07 08:56:24 214

原创 Zookeeper应用示例(2)——集群管理

场景描述:启动一个服务监控/cluster目录,启动3个客户端(运行在3个虚机上),分别在/cluster目录上创建三个临时目录,然后分别休眠5分钟。目的:为了验证在客户端正常结束(调用zookeeper_close)、CTRL+C异常结束以及虚机Reboot之后,监控服务多长时间可以检测到客户端离线。结论:1)若客户端正常结束,服务端立即就能感知到客户端离线;2)若CTRL+C提前终...

2018-11-06 18:42:02 159

原创 Zookeeper C API应用示例(1)——配置管理(同步API)

场景描述服务端监控客户的修改、更新等动作。服务端:监控/configure目录,有数据更新时,输出/configure中的数据;子节点创建/删除时,服务程序列出当前的子目录列表。代码如下:#include <stdio.h>#include <unistd.h>#include <stdlib

2018-11-06 09:23:59 258

转载 Zookeeper C API之接口描述

Zookeeper C API接口大部分以zoo_开头,少量接口以zookeeper_开头。除了初始化/销毁句柄、设置日志等级/日志流以及一些辅助功能的API外,Zookeeper C API接口分为同步接口和异步接口:同步接口以zoo_开头、异步接口以zoo_a开头。1、初始化/销毁Zookeeper句柄初始化Zookeeper句柄(zhandle_t)原型:ZOOAPI zhand...

2018-11-03 16:50:14 1987

原创 Zookeeper C API应用准备工作

上文 https://blog.csdn.net/qq_41688455/article/details/83659876 中讲述了如何配置Zookeeper C开发环境,本文将介绍在编译Zookeeper C客户端前的准备工作和注意事项。步骤1、配置环境变量:按照上文描述的步骤,在makeinstall之后,生成的库文件zookeeper_mt和zookeeper_st会被拷贝到/usr...

2018-11-03 15:04:02 469

翻译 Zookeeper C API之回调函数

监视回调函数原型:Typedef void (*watcher_fn)(zhandle_t *zh, int type, int state, const char *path, void *watcherCtx);监视函数原型的各个参数说明如下:zh Zookeeper句柄(handle)type 事件类型(event type),_EVENT常量之一state 连接状态(co...

2018-11-02 19:32:10 339

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除