- 博客(41)
- 收藏
- 关注
转载 Zookeeper资料
ZooKeeper典型应用场景一览 ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非
2016-08-24 15:03:31
366
转载 阿里四不像——分布式核心技术框架 Fourinone
FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题的初衷:我们仅仅是想写个程序把几台甚至更多的机器一起用起来计算,把更多的cpu和内存利用上,来解决我们数量大和计算复杂的问题,当然这个过程中要考虑到分布式的协同和故障处理。如果仅仅是
2016-08-22 15:21:14
3882
原创 PHP - 利用P3P实现跨域!ucenter经典实现
有别于JS跨域、IFRAME跨域等的常用处理办法,还可以利用P3P来实现跨域。P3P是什么P3P(Platform for Privacy Preferences)是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护。P3P标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些人、信息将被保留多少时间及其使用信息的方式,如站点应做诸如
2016-08-22 13:53:10
927
原创 通俗的解释一下什么是 RPC 框架?
首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简
2016-08-18 19:49:35
7454
原创 Nginx的负载均衡的那点事
HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”。而TCP负载均衡,就是我们通常所说的“四层负载均衡”,工作在“网络层”和“传输层”。例如,LVS(Linux Virtual Server,Linux虚拟服务)和F5(一种硬件负载均衡设备),也是属于“四层负载均衡”。轮询策略和IP哈希策略对比加权轮询策略优点:适用性更强,不依赖于客户端的
2016-08-17 21:31:43
739
转载 九个数据结构面试题(附程序)
1.判断链表是否存在环型链表问题:判断一个链表是否存在环,例如下面这个链表就存在一个环:例如N1->N2->N3->N4->N5->N2就是一个有环的链表,环的开始结点是N5这里有一个比较简单的解法。设置两个指针p1,p2。每次循环p1向前走一步,p2向前走两步。直到p2碰到NULL指针或者两个指针相等结束循环。如果两个指针相等则说明存在环。struct link{
2016-08-12 16:29:31
539
转载 Yii2 数据操作Query Builder
Query Builder[php] view plain copy$rows = (new \yii\db\Query()) ->select(['dyn_id', 'dyn_name']) ->from('zs_dynasty') ->where(['between','dyn_id', 1,30])
2016-08-10 18:49:49
621
原创 siege压测使用和说明
siege是一个压力测试和评测工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在预定义并发量下重复进行。siege可以从预定义列表中获取随机的URL,所以siege可用于仿真用户请求负载。一、siege工具安装二、整理测试环境和测试URL1、修改本机Hosts,确认压测的URL可用且返回正确数据2、发压测邮件说明给相关负责人,防止出现邮
2016-08-10 12:06:25
3923
原创 yii2 读取db操作db命令
yii2 读取db操作db命令$connection = Yii::app()->db; //连接插入数组形式Yii::app()->dbName->createCommand()->insert('tbl_user', array( 'username'=>'phpernote', 'password'=>'123456'
2016-08-05 14:25:21
2801
原创 shell 按天自动割裂nginx日志,清理7天前日志文件
#!/bin/shLANG=CLC_ALL=CPATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/local/bin"export LANG LC_ALL PATHNGINXPID=/usr/local/nginx/
2016-08-03 11:18:56
692
原创 一次$_REQUEST的count参数异常BUG排查
由于360的PHP开发使用的是QFrame框架,然后对参数进行安全过滤时候调用了$count= $this->getParam('count');方法,而该方法调用了QFrame的QFrameHttp类。说白了,我们除了$_GET $_POST外,$_REQUEST默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。以后尽量少使用$_REQUEST
2016-07-13 23:56:26
451
转载 Linux内存管理之mmap详解&&nginx子进程间通信
一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统调用.
2016-07-13 14:37:21
1378
转载 linux下的find文件查找命令与grep文件内容查找命令
在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。 一.find命令
2016-07-11 14:15:36
253
转载 Discuz memcache+ssrf GETSHELL漏洞的问题
这2天,很多站长肯定都收到阿里云提示discuz memcache+ssrf GETSHELL漏洞的相关说明,但购买阿里云云盾安骑士最少需要支付100块钱,下面我就在猪先飞网给大家分享下如何来解决Discuz memcache+ssrf GETSHELL漏洞的问题。该漏洞描述:discuz存在SSRF漏洞,在配置了memcache的情况下,攻击者可以利用ssrf通过memcache中转,向磁盘
2016-07-01 12:17:42
2448
原创 PHP web 安全(个人整理版本)
web安全1.表单测试:空白字符,控制字符,非字母数据(如符号&,*等),超长输入(大于256个字符),留言版垃圾,二进制数据,其他编码数据(如ASICII,UTF-8,十六进制,八进制等),SQL诸如,XSS处理:设定长度规则(合法用户不会写小说),若能发邮件的地方只能一次一个发一人,错误处理进行重定向或错误提示,2.系统调用:exec(),sysetem(),b
2016-07-01 11:57:45
541
原创 JSON 被转义的字符引发BUG问题
结论:1、 在json_encode时候,第二个参数加上JSON_UNESCAPED_UNICODE。前提是需要PHP 5.4以上版本支持2、 遇到json数据异常时候,请先关注字符是否包含\u000-\uffff这样字符,如果有需要想办法处理,否则json会转义。 背景:今天在和搜索部门同事进行搜索质量调优时候遇到一个问题,就是一个数据生成时候json格式正确。灌入他们引擎,
2016-05-30 17:13:32
31477
原创 应对 Memcached 缓存失效,导致高并发查询 DB 的几种思路
当Memcached缓存失效时,容易出现高并发的查询DB,导致DB压力骤然上升。这篇blog主要是探讨如何在缓存将要失效时,及时地更新缓存,而不是如何在缓存失效之后,如何防止高并发的DB查询。个人认为,当缓存将要失效时,及时地把新的数据刷到memcached里,这个是解决缓存失效瞬间高并发查DB的最好方法。那么如何及时地知道缓存将要失效?
2016-05-12 11:07:36
408
转载 SOCKET,TCP/IP,UDP,HTTP,FTP总结
一、TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层、传输层和应用层:网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP、HTTP、TELNET、SMTP、DNS等协议 HTTP是应用层协议,主要解决如何
2016-05-11 22:13:49
951
转载 HTTP、HTTPS、TCP、UDP、TCP/IP名词解释及区别
HTTP:超文本传输协议(HyperText Transfer Protocol)是一种无状态协议,就是说客户端发送一次请求,服务器端接收请求,经过处理返回给客户端信息,然后客户端和服务器端的链接就断开了,为了维护他们之间的链接,让服务器知道这是前一个用户发送的请求,必须在一个地方保存客户端的信息,有2中解决方案,一是在客户端保存,二是在服务器端保存。1.在客户端保存:Cookie
2016-05-11 21:37:05
2805
转载 缓存Redis与Memcached的比较
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度. Memcached基于一个存储键/值对的hashmap。 Redis是一个key-value存储系统,和Memcached类似。但是它支持存储的value类型相对更多,包括strin
2016-05-11 19:02:09
278
原创 linux私房菜学习笔记—vim编辑器
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g
2016-04-27 15:37:50
309
转载 [php] json_encode 的第二个参数详解
预定义常量下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。以下常量表示了 json_last_error() 所返回的错误类型。JSON_ERROR_NONE (integer)没有错误发生。自 PHP 5.3.0 起生效。JSON_ERROR_DEPTH (integer)到达了最大堆栈深度。自 PHP 5.3.0 起生效。JSON_ERROR
2016-04-27 11:57:58
283
原创 linux 私房菜学习笔记点——用户组,文件夹权限系列
改变用户文件夹权限 chgrp chown chmod 文件名长度 由于使用Ext2/Ext3文件系统,单一档名可达 255 字符,完整文件名 (包含路径) 可达 4096 个字符/bin主要放置在开机时,以及进入单人维护模式后还能够被使用的指令,至于/usr/bin则是大部分软件提供的指令放置处。/bin放置的是一般用户惯用的指令,至于/sbin则是系统管理员才会使用到
2016-04-27 11:57:21
358
转载 学会考虑成本,你才能成长更快
很多时候,面对未知的机会、知识和金钱,我们总会下意识地选择金钱,因为钱对你的价值是确定的。殊不知钱是可以赚的,知识学到之后能让你增值,机会错过之后就可能没有下一次。最近越来越不喜欢在微信群闲聊。自己由于各种各样的原因加入了很多微信群,也被拉入了很多微信群。每天一大早开始,各个微信群就逐渐活跃起来。一直到晚上,如果不去查看未读消息,所有群的信息加起来应该有几万
2016-04-05 11:26:12
335
转载 Linux 如何学习_鸟哥的建议(重点在Solution的学习)
鸟哥的建议(重点在Solution的学习):除了上面的学习建议之外,还有其他的建议吗?确实是有的!其实, 无论作什么事情,对人类而言,两个重要的因素是造成我们学习的原动力:成就感兴趣很多人问过我,鸟哥是怎么学习Linux的?由上面鸟哥的悲惨Linux学习之路你会发现, 原来我本人对於计算机就蛮有兴趣的,加上工作的需要,而鸟哥又从中得到了相当多的成就感, 所以罗,就一发不可收拾的
2016-04-05 11:06:24
972
转载 业务运维三天入门
工作快10年了,干过程序员,技术支持,最后干的运维,公司是BAT之一,具体哪家就不说了,一直很少写文章,但最近确实比较闲,打算写一点面向新人的文章,当然对于中高级的我觉得也可能有参考意义。先写三篇吧,看对大家有没有用,如果有用,后面再写些高级的。文章主要面向方法论,不讨论具体的技术细节。第一天:选择运维运维值不值得干 对于没进入和刚进入IT行业的新
2016-03-31 21:12:53
688
转载 awk使用 模式总结
awk使用 模式总结1. BEGIN { 语句 }在读取任何输入前执行一次 语句2. END { 语句 }读取所有输入之后执行一次 语句3. 表达式 { 语句 }对于 表达式 为真(即,非零或非空)的行,执行 语句4. /正则表达式/ { 语句 }如果输入行包含字符串与 正则表达式 相匹配,则执行 语句5. 组合模式 { 语句 }一个 组合模式 通过与(&&
2016-03-28 11:31:29
401
原创 一次nginx 502 & mysql not contect 排错经历
今天早上,开机访问自己站点时候,发现报错了,nginx 502 。然后自己想当然的reboot之后,发现变成了mysql not content的错误于是,就想着肯定是mysql进程没起来,ps -ef | grep msyql 发现确实是这样。可我定时脚本里是有监控mysql的,查看脚本运行日志发现mysql是run状态,于是手动执行该脚本,提示mysql start 成功。再访问发
2016-03-27 10:48:29
492
转载 12个scp传输文件的命令栗子
12个scp传输文件的命令栗子 一直在用scp进行简单的远程复制文件的功能,今天无意间看到一篇介绍scp的文章,便想着学习学习并将其翻译了过来。安全复制 Scp(Secure Copy)是一个在各个主机之间进行复制或者文件传输的一个命令行工具。它使用一种同ssh一样的安全机制。事实上,它在后台使用ssh连接来进行文件的传输。scp既指一种定义安全复制应该如何工作的协议,
2015-12-18 12:34:50
796
原创 Gearman入门学习
Gearman协议Gearman协议工作于TCP之上,默认使用4730端口。它之前使用端口7003,但与AFS的端口范围冲突,4730端口是由IANA分配的。client和jobserver间,以及worker与jobserver间存在通信交互,这两种情况下的通信协议都是由请求包和响应包组成。所有发送到jobserver的包都认为是请求,所有由jobserver发送的包都认为是响应。
2015-12-10 21:08:16
610
转载 PHP 操作redis 封装的类
<?php/** * Redis 操作,支持 Master/Slave 的负载集群 * * @author V哥 */class RedisCluster{ // 是否使用 M/S 的读写集群方案 private $_isUseCluster = false; // Slave 句柄标记 private $_sn = 0;
2015-11-16 15:42:16
346
转载 shell&&linux 常用命令
suselinux 常用命令(1)命令ls——列出文件ls-la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件ls a* 列出当前目录下以字母a开头的所有文件ls -l *.doc 给出当前目录下以.doc结尾的所有文件(2)命令cp——复制文件cp afile afile.bak 把文件复制为新文件afile.bakcp afile /home/b
2015-11-16 10:26:43
894
原创 PHP高性能研究之APC&&zend导致502问题排查
最近,在研究PHP高性能方面知识,看到APC就像尝试下,看看APC的效果。然后,就走上了这条悲剧的路程1:安装APC这块没啥大问题,按照教操作,代码如下:wget http://pecl.php.net/get/APC-3.1.13.tgz tar xzvf APC-3.1.13.tgz cd APC-3.1.13 /a/apps/php/bin/phpize ./
2015-11-04 14:50:16
458
转载 Linux下access日志分析与状态查看方法
使用apache服务器,有时候需要查看apache的日志与状态,那么就需要下面的命令了,特分享下方便需要的朋友假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.p
2015-10-21 15:18:06
1147
原创 清空memcache缓存的一些资料
近日,一个项目需要用到定时刷新缓存数据,因此想到清空memcache缓存,来达到刷新数据的目的 1.查memcache状态/usr/bin/perl /usr/local/src/memcached-1.4.5/scripts/memcached-tool localhost:11211或者telnet localhost 112112.手动清除memcached测
2015-09-07 18:46:02
503
转载 Linux下的Memcache安装
最近在研究怎么让Discuz!去应用Memcache去做一些事情,记录下Memcache安装的过程。Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcach
2015-08-27 14:50:43
264
原创 (4)PHP中的CGI实现
PHP的CGI实现了Fastcgi协议,是一个TCP或UDP协议的服务器接受来自Web服务器的请求, 当启动时创建TCP/UDP协议的服务器的socket监听,并接收相关请求进行处理。随后就进入了PHP的生命周期: 模块初始化,sapi初始化,处理PHP请求,模块关闭,sapi关闭等就构成了整个CGI的生命周期。以TCP为例,在TCP的服务端,一般会执行这样几个操作步骤:调用soc
2015-08-25 21:22:40
531
原创 (3)PHP生命周期和Zend引擎
一切的开始: SAPI接口SAPI(Server Application Programming Interface)指的是PHP具体应用的编程接口, 就像PC一样,无论安装哪些操作系统,只要满足了PC的接口规范都可以在PC上正常运行, PHP脚本要执行有很多种方式,通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中。通常,我们使用Apache或者Nginx这类Web服务
2015-08-25 21:06:26
446
转载 linux 内核poll/select/epoll之间的区别总结[整理]
今天晚饭后,在办公室询问郭老师关于C10K的问题,郭老师给出了3种解决办法1、升级硬件,多线程多进程抗2、采用异步I/O3、go的携程其中,围绕异步I/O的问题,又在夏妮的细问中,进行了深入的了解:select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就
2015-08-11 21:22:21
433
原创 (2)PHP运行时的全局参数
(2)PHP运行时的全局参数struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使用自动字符串转义 zend_bo
2015-08-10 20:57:34
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人