异步会以多线程、异步I/O等形式运行。给一个程序入口,让它处理完当前过程之后,把处理结果送到这个入口,然后执行另一段程序——俗称回调。回调一般使用callback这个名称 同步:如排队买票。指令执行(排队)时间过长,就会造成阻塞.异步(多线程):如多窗口。多个异步流程之间相互独立,在不需要等待共享资源的情况下它们相互不会阻塞。内部仍然是同步的。异步(I/O):如各部门资料汇总,找人去跑腿
兜兜转转一大圈,在它支持Markdown后又回来了。。[TOC] 概念学习ajax之前需要的知识储备--json需要注意://属性名必须使用双引号//不能使用十六进制值//不能使用undefined//不能使用函数和日期对象 必会方法:JSON.parse('JSON') 将json字符串转为JS对象JSON.stringify(JS) 将J
忘情居李振良的技术博客马哥Linux培训菜鸟博客一盏烛光
hashlib模块 hashlib模块提供了很多加密的算法,该模块实现了许多不同的安全散列和消息摘要算法的通用接口。包括FIPS安全散列算法SHA1,SHA224,SHA256,SHA384和SHA512(在FIPS 180-2中定义)以及RSA的MD5算法。术语“安全散列”和“消息摘要”是可以互换的。老被称为消息摘要算法。现代术语是安全散列。什么是摘要算法呢? 摘要算法又称为哈希算
———————————————上篇————————————————前言现在最前面,这篇文章一共分为两部分,第一部分主要是介绍运维工程师到底是个神马鬼工程师,他真的是每天跑机房,每天装机的么?第二部分是围绕运维工程师介绍技术栈以及运维体系架构。运维工程师,在英文里面名为 “Operations Engineer”,看字面意思,貌似的确就是操作服务器、管理系统的工程师。我们可以根据公司大小的不同,把它
迭代器 iterator迭代,即一些事要重复好多次,就像在循环中做的那样。 一个对象是否可迭代,全都取决于这个对象是否有__iter__方法,只要该对象实现了__iter__方法,调用对象的__iter__方法,就回返回一个迭代器,这个迭代器一定具有next方法(调用这个方法时不需要任何参数),在调用这个迭代器的next方法时,迭代器就回返回它的下一个值,当迭代器中没有值
装饰器(Decorator) 使用场景:为被装饰器装饰的函数增加功能,但又不希望修改函数的定义,即在代码运行期间动态增加功能。 装饰器更多的用于后期功能升级而不是编写新的代码。装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们以装饰函数为例子介绍其用法。理解装饰器需要具备的知识: 函数即“变量”、高级函数、嵌套函数例如为已经运行的代码中
random模块 用于生成随机浮点数、整数、字符串和随机抽取元素方法:random() 生成一个随机浮点数,范围在0.0~1.0之间uniform(上限,下限) 在设置的范围内,随机生成一个浮点数(上下限可以是整数,浮点数)randint(上限,下限) 在设定的范围内,随机生成一个整数(上下限必须为整数)choice(序列)
copy模块使用copy模块来实现复制功能。复制方法分为浅拷贝与深拷贝: 浅拷贝, copy.copy(object) 对内存地址进行复制,目标对象和源对象指向同一内存片内存空间。 深拷贝, copy.deepcopy(object) 为复制生成的对象也申请一个单独的内存空间,内存地址是自主分配的。 完成复制后,目标对
OS模块 os,语义为操作系统,包含普遍的操作系统功能,与具体的平台无关。python编程时,处理文件和目录这些操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小…… os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,例如:这时候我们使用python中os模块的os.path.abspath(n
re模块用于在正则表达式匹配操作。python中为了避免实现输出'\','\n'字符的转义问题(如正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用" \\\\ "表示正则表达式中的" \ ",因为正则表达式中如果要匹配" \ ",需要用\来转义,变成" \\ ",而Python语法中又需要对字符串中每一个\进行转义,
commands模块用于执行Linux shell命令,要获得shell命令的输出只需要在后面参数写入('命令')就可以了。需要得到命令执行的状态则需要判断$?的值, 在Python中有一个模块commands也很容易做到以上的效果。看一下三个函数:1). commands.getstatusoutput(命令)执行shell命令, 返回两个元素的元组tuple(status, result),s
Linux发行版本,从性质上划分,可分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。 商业版本以Redhat为代表,开源社区版本则以debian、Ubuntu为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用。 CentOS、Ubuntu、Debian三个linux都是非常优秀的系统,开源的系
nginx平滑升级 当需要将正运行的Nginx升级,可以在不中断服务的情况下进行,具体步骤如下:1、下载新的Nginx,重新编译到旧版本的安装路径中。重编译之前,先备份一下旧的可执行文件。2、查询原来安装配置信息# netstat -unlatp | grep nginx tcp &nbs
nginx的tcp proxy负载调度有两种方式: 官方的ngx_stream_core_module 阿里开源的nginx_tcp_proxy_module此处介绍nginx官方TCP proxy。nginx从1.9.0版本以后支持面向TCP的反向代理。莫约是2015年初发布的。注:如今最新版nginx为
重定向server1:先设置黑名单vim /etc/haproxy 90 acl badhost src 172.25.88.250 91 &nbs
使用ACLs和获取样本Haproxy 能够从请求报文,响应报文,从客户端或者服务端信息,从表,环境信息等等中提取数据。提取这样的数据的动作我们称之为获取样本。进行检索时,这些样本可以用来实现各种目的,比如作为粘滞表的键,最常用的用途是,根据预定义的模式来进行匹配。访问控制列表(ACL)提供一个灵活方案进行内容切换,或者在从请求,响应,任何环境状态中提取的数据基础之上做出决策。控制列表的原则很简单:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。通常被用来检索、替换那些符合某个模式(规则)的文本。其主要应用对象是文本,因此它在各种文本编辑器场合都有应用。 针对文件内容的文本过滤工具里,大都用到正则表达式,如vi,grep,awk,sed等。注:使用g
haproxy 三种保持客户端Seesion;一、源地址hash(用户IP识别)haroxy 将用户IP经过hash计算后 指定到固定的真实服务器上(类似于nginx 的IP hash 指令)。缺陷,当后端一台服务器挂了以后会造成部分session丢失。配置指令backend SOURCE_srv mode http balance source&
目前haproxy支持的负载均衡算法有如下8种 1.roundrobin动态加权轮询算法,支持权重的运行时调整及慢启动机制;最大支持4095个后端主机;在服务器的处理时间平均分配的情况下这是最流畅和公平的算法。该算法是动态的,对于实例启动慢的服务器权重会在运行中调整。2.leastconn最小连接数算法,连接数最少的服务器优先接收连接。建议用于长会话场景中使用,例如LDAP、SQL等协议,而不适合
statestate是Saltstack最核心的功能,通过预先定制好的sls(salt state file)文件对被控制主机进行状态管理,支持包括程序包(pkg)、文件(file)、网络配置(network)、系统服务(service)、系统用户(user)等。state的定义state的定义是通过sls文件进行描述的,支持YAML语法,定义规则如下:$ID: #定义state名称,通
pillar Pillar是用来产生特定于minions的任意数据的接口。它跟grains的结构一样,也是一个字典格式,数据通过key/value的格式进行存储。作用是定义与被控主机相关的任何数据,定义好的数据可以被其它组件使用,如模板,state,API等。 在pillar中定义的数据与不同业务特性的被控主机相关联,使不同被控主机只能看到自己匹配的数据,在Salt的设计中
1. inode和block--------------------------------- 先介绍一下硬盘的整体结构。硬盘中包含多个硬盘盘片,硬盘盘片为圆形,每个硬盘盘片都有一个可以读写的磁头(Head),将这个磁头固定,使硬盘盘片旋转一周,所走轨迹就是磁道(Track)。硬盘内所有盘片的相同磁道号的集合成为磁柱(Cylinder)。每一磁道被划分成许多区域
grainsgrains 类似于puppet的facter 负责采集客户端一些基本信息,这个也完全可以自定义。一般从服务器端定义然后推下去,采集完后,再汇报上来。altstack里的Grains功能,是控制minion端的静态变量,在master端通过Grains可以获得minion对应的变量值。查看minion的全部静态变量,可以通过如下实现:# salt '*' grain
Buffer(缓冲) Buffer(缓冲)是为了提高内存和硬盘(或者其他I/O设备)之间的数据交换的速度而设计的。根据磁盘的读写设计的。把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,提高性能。 主要目的进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O,以*减少响应次数*,通常其中的数据在操作完成之后,buffer不会被继续使用;(比
首先对比一下LVS/Nginx/HAProxy特点名称特点LVS1) 抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;2) 配置性比较低,所以并不需要太多接触,是缺点也是优点,可大大减少了人为出错的几率;3) 工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat,不过我们在项目实施中用得最多的
常用模块学习(1)、cp模块(实现远程文件、目录的复制,以及下载URL文件等操作)(参数 cache_local_file、get_file、get_dir、get_url)## 将主服务器file_roots指定位置下的目录复制到被控主机# salt '*' cp.get_dir salt://hellotest /data ##将主服务器file_roots指定位置下的文件复制到被控
简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。有如下特性:(1)、部署简单、方便;(2)、支
原理简介 keepalived顾名思义是保持存活,常用来搭建设备的高可用,防止业务核心设备出现单点故障。keepalived基于VRRP协议来实现高可用,主要用作realserver的健康检查以及负载均衡主机和backup主机之间的故障漂移。如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具有3~5层交换功能。
一步一个脚印。先简单介绍一下TCP协议。 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。很复杂,但属于不论程序员还是运维人员都必会的基本功。 面向对象的——连接双方在通信前需要预先建立一条连接,这犹如实际生活中的打电话,电话必须拨通了以后才能交流。 可靠的——TCP协议中有诸多
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号