- 博客(64)
- 资源 (5)
- 收藏
- 关注
转载 架构师需要了解的Paxos原理、历程及实战
编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文由李凯分享。转载请注明来自高可用架构公众号「ArchNotes」。李凯,目前在美团云计算部担任高级技术专家,带领存储团队。2007 年加入百度从事分布式平台 Pyramid 项目研发;2010 年在 OceanBase 立项初期,加入阿里,花名郁白,5 年中主要时间都在开发和维护 OceanBase 的 UpdateServer 模块。“
2017-02-09 16:48:05 1193
转载 大型网站典型故障案例分析
写日志也会引发故障故障现象:某应用服务器集群发布后不久就出现多台服务器相继报警,硬盘可用空间低于警戒值,并且很快有服务器宕机,登录到线上服务器,发现log文件夹里的文件迅速增加,不断消耗磁盘空间。原因分析:查日志内容发现开发人员将log输出的level全局配置为Debug,这样一次简单的web请求就会产生大量的log文件输出,在高并发的用户请求下,很快就消耗完磁盘空间。经验:线上的日志输出级别至
2015-03-09 23:04:02 2309
转载 网购秒杀系统架构设计分析
秒杀活动的技术挑战### 对现有网站业务造成冲击 ### 秒杀活动只是网站营销的一个附加活动,特点是:时间短、并发访问量大,如果和网站原有应用部署在一起,必然会对现有业务造成冲击。 解决方案:将秒杀系统独立部署,甚至使用独立域名,使其与网站完全隔离。高并发下的应用、数据库负载用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构
2015-03-06 00:45:59 4141
原创 WebSocket握手总结
WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。原理以前网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每隔1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的
2015-03-04 18:43:27 21644
原创 CSRF攻击与防御
CSRF攻击CSRF(Cross Site Request Forgery,跨站点请求伪造),攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易、发表评论等。CSRF的主要手法是利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。Created with Raphaël 2.1.2用户用户受信任网站A受信任网站A攻击者网站B攻击者网站B(1)用户登录受信任服务器(2)用户访问攻击者服
2015-03-03 22:40:45 727
转载 应用服务器性能优化
优化手段主要有缓存、集群、异步等。分布式缓存网站性能优化第一定律:优先考虑使用缓存。缓存的基本原理缓存是指将数据存储在相对较高访问速度的存储介质中。(1)访问速度快,减少数据访问时间;(2)如果缓存的数据进过计算处理得到的,那么被缓存的数据无需重复计算即可直接使用。缓存的本质是一个内存Hash表,以一对Key、Value的形式存储在内存Hash表中,读写时间复杂度为O(1)。合理使用缓存不合
2015-03-03 00:13:44 2400
转载 Web前端性能优化
浏览器访问优化减少http请求 HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要建立通信链路、进行数据传输,而在服务器端,每个HTTP都需要启动独立的线程去处理。这些通信和服务的开销都很昂贵,减少HTTP请求的数目可有效提高访问性能。 减少HTTP的主要手段是合并CSS、合并JavaScript、合并图片。将浏览器一次访问需要的JavaScript、CSS合并成一个文件,这样
2015-02-27 23:51:02 768
原创 [MySQL] 排序不确定性
执行语句:SELECT * FROM tb1 ORDER BY CreateTime DESC LIMIT 0,5;显示数据:ABCDE翻页查询:SELECT * FROM tb1 ORDER BY CreateTime DESC LIMIT 5,5显示数据:DGH===========================================
2015-01-27 22:34:02 645
转载 文件系统特性
磁盘分区完毕后还需要进行格式化(format),之后操作系统才能够使用这个分割槽。 为什么需要进行『格式化』呢?这是因为每种操作系统所设定的文件属性/权限并不相 同, 为了存放这些档案所需的数据,因此就需要将分割槽进行格式化,以成为操作系统能够利用的『文件系统格式(filesystem)』。 较新的操作系统的档案数据除了档案实际内容外, 通常含有非常多的属性,例如 Linux
2013-12-13 17:39:42 875
原创 PHP CURL获取Web Service出现乱码问题
PHP获取API接口数据时,发现解析不了,echo出来发现有乱码。代码如下: public function testPost() { $url = 'http://api.local/test'; $para->name ="edwin"; $para->sex ="male"; $sPara = json_encode($para); $sPara = "r=" .
2013-08-29 16:44:03 3347
原创 Linux 指令几则
bc :简单计算器。+ 加法 - 减法 * 乘法 / 除法 ^ 指数 % 余数。如要输出小数点,要设置 scale=number(小数位)cal:显示日历。参数可以是月 年 或者年。 如:cal 08 2013;cal 2013简单文本编辑器:nano [文件名]
2013-08-22 15:59:27 721
转载 剪切、粘贴和连结文本
用cut命令输出列: cut命令输出一个文本文件中指定的列。假设有一个名为example.txt的文件具有以下的文本:one two threefour five sixseven eight nineten eleven twelve可用 -f选项执行要提取的字段。下面的命令将返回example.txt文件中的第二列:cut -f2 example.txt
2013-07-25 23:24:48 848
转载 重要的UNIX目录
/etc:该目录是系统管理员保存系统配置文件的目录。这里的重要文件涉及密码(etc/passwd)和所关心的主机信息(etc/hosts)。/dev:该目录包含设备文件,如打印机配置文件等。/tmp:该目录为系统保存临时文件,可能包括程序的日志文件。通常你具有此目录的写访问权。home:该目录是UNIX管理员在给你创建一个账号时分配给你的目录。这是你在登录时首先进入的目录。你拥有次目录
2013-07-24 22:57:20 758
转载 文件权限
查看文件权限: 使用ls -al命令可列出目录中的文件权限及文件名。-rwxrwxrwx在开始处每个文件都具有10个不同的字母及空符号(-)的组合。第一个字符可以是一个空符号或字母d。如果为字母d,则为一个目录;如果为一个空符号,则是一个普通文件。后面的9个位置由3组rwx组成。rwx组合代表文件的读、写、执行权限。第一组分配给文件拥有者;第二组分配给用户所属组
2013-07-24 22:46:09 939
原创 防止文件被覆盖
可使用 noclobber shell 变量来避免意外地覆盖某个已有文件。最好在启动文件(如:.cshrc文件)中包括这个变量,如下所示:set noclobber
2013-07-22 23:11:05 1355
转载 DHCP 協定
經過了前面的學習,相信您不再認為設定與管理 TCP/IP 網路是件輕鬆的事情。要成功的將您的網路用 TCP/IP 連接起來,您就得為每台電腦設定 IP、mask、gateway、等等繁瑣的事情。要是您想管理好一個比較大的網路﹐或是電腦節點經常改變(如手提電腦或撥接)﹐這樣的工作可以說是非常令人討厭的﹐而且出錯的機會也比較多。要是,萬一日後要進行 IP 重新規劃﹐其工作量也是相當驚人的。面對
2013-05-28 16:51:42 983
转载 ICMP 協定
在整個 TCP/IP 協定家族中,對 "使用者" 來說,ICMP 恐怕是易忽略的協定了。關於前面所討論的協定,真要能發揮工作的前提條件是:"假設一切都沒問題" 。然而,在當今如此複雜的網路環境中,前述條件恐怕是沒辦法保證的:設定可能有誤、線路有可能會斷、設備可能掛點、router 可能負載太高、 .... 等等又等等的狀況,都是我們沒辦法確保的。那麼,我們必需有一套機制來偵測或通知各種各樣可能發生
2013-05-23 14:38:26 904
转载 TCP 與 UDP
我們在前面討論 OSI 和 TCP/IP 分層協定概念的時候﹐已經指出﹕不管協定設計者如何定義層級﹐各層級協定大致分成兩類﹕網路群組﹑和使用者群組。前面介紹的 ARP ﹑IP﹑RIP 等協定﹐可以算是網路群組的範圍﹐假如您對前述概念都有一定認識﹐已經知道了一個封包如何從一個節點傳遞到另一個節點。然而﹐這僅是 TCP/IP 協定的一半而已﹐要完全了解 TCP/IP 的精髓﹐在 IP 協定的更上一個層
2013-05-23 12:20:02 1734
转载 IP Routing
除了 subnetting ,關於 IP 協定的令一個關鍵概念就是:IP 路由(routing)。那什麼是路由呢﹖簡單而言﹐就是當一個封包從發送端被傳送到接收端所經過的路徑。IP 路由原理若您重看上一章所介紹的 IP 封包格式﹐您會發現第 4 和第 5 行﹐分別用來記錄來源 IP 位址和目的地 IP 位址。必須注意﹐除非封包由特定程式修改過﹐在正常的傳遞中﹐這兩個欄位的位址是永遠不變動。I
2013-05-21 15:45:26 1323
转载 IP位址
網際網路協定( IP )是整個 TCP/IP 協定的基礎﹐它的一些功能在前面的介紹 OSI 和 TCP/IP 模型的時候已經略略提過了﹐不過﹐由於它的重要性實在太值得了解﹐因此我們在這裡再深入的探討一下網際網路層的協定。而事實上,若 IP 這個環節若不過關的話,我會勸您別嚐試網路相關的工作了,否則會痛苦一輩子!大體而言,網際網路協定的功能包括如下﹕定義資料在網際網路中傳輸的基本單位
2013-05-21 12:05:03 1107
转载 TCP/IP 工作模型
介紹 OSI 模型 我們已經知道 TCP/IP 能夠應用在不同的網路﹐這就必須要有一套大家都遵守的的標準才能保證彼此能夠溝通。因為數據通訊領域的專用屬於和技術實在太廣泛了﹐沒有任何一位電腦專家能夠熟悉全部的內容。因此必須有一套公認而且通用的參考架構以供釐清各項標準。在我們了解 TCP/IP 協定之前﹐有一個公認的網路模型我們必須要先了解的﹐它就是由 International Standard
2013-05-15 16:32:01 1071
转载 超越LAN之外 --- Internetworking
基本上我們前面所接觸的都是在LAN的範圍﹐但時至今日的網絡﹐尤其是 Internet 的蓬勃發展﹐我想也很少網絡會獨立在局域之內吧﹐所以了解一下網路和網路之間的通訊是勢在必行的了。在某些定義來看﹐一個 LAN 就好像一台放大比例的電腦﹐只不過更加複雜而已﹔那麼在 LAN 和 LAN 之間組建網路﹐我們稱之為 internetworking 。其應用非常廣泛,比如﹕圖書館可以通過它安
2013-05-15 14:47:29 865
转载 通訊協定
由於網路的迅猛發展﹐出現了許多供網路使用的軟體和硬體﹐為了讓它們都能夠有效的溝通﹐我們需要建立一些規則。 在這一章裡面﹐我會向大家介紹目前比較通用的網路通訊協定﹐和模擬數據是如何的從一個節點傳送到另一個節點﹐從功能上面看看通訊協定的定義。 何為通訊協定﹖ 一個比較好理解的講法是﹕通訊協定就是一些標準和規則。例如﹐我們看到紅燈就要停、綠燈才可以走,者就是一種協定了。若是彼此使用不同的協定
2013-05-14 12:04:34 1032
转载 網路架構
在這裡我們將要討論一些網路物理和邏輯形態﹐以及它們各自的特征﹐同時也會開始介紹IEEE的802.x標準。 網線的困繞 要組網﹐當然先要將個機器連接起來啦。假如您喜歡的話﹐我們可以將每兩個網路節點都直接用網線連接起來﹐如果材料夠﹐地方又允許的話﹐這完全是有可能的。那麼按此接法﹐我們需要的網線數量 = 節點數目 x ( 節點數目 - 1 ) / 2 ﹐也可以從下面的列表中直接看出來﹕
2013-05-13 18:00:58 899
转载 Linux 的核心版本
Linux 的核心版本编号有点类似如下的样子:2.6.18-92.el5主版本.次版本.释出版本-修改版本如前所述,因为对二 Linux 核心的开发者太多了,以致二造成 Linux 核心经常性的变动。 但对二一般家庭计算机或企业关键应用的话,常变动的核心并不适合的。因此托瓦兹便将核心的发展趋势分为两股, 并根据这两股核心的发展分别给予不同的核心编号,那就是:主、次版本为奇数
2013-05-10 16:51:33 814
转载 硬件知识扫盲
CPU:CPU 的『外频』不『倍频』所谓的外频指的是 CPU 不外部组件进行数据传输时的速度,倍频则是 CPU 内部用来加速工作效能的一个倍数, 两者相乘扄是 CPU 的频率速度。以 Intel Core 2 Duo E8400 CPU 来说,他的频率是 3.0GHz, 而外频是 333MHz,因此倍频就是 9 倍啰!(3.0G=333Mx9, 其中 1G=1000M)CPU
2013-05-06 11:23:36 739
原创 [php] in_array 判断问题
<?php$arr = array("Linux");if (in_array(0, $arr)) { echo "match";}?> 执行以上代码,0和字符串是可以匹配成功的。原因是在in_array,如果比较的类型不匹配,并且第一个参数是0,它会返回true(不正确)。查手册:If the third parameter strict is set to
2013-05-02 17:58:33 8092 4
翻译 [MySQL] 设置时区
想设置MySQL的time_zone为 Asia/Hong_Kong,执行语句:SET time_zone 'Asia/Hong_Kong',报错:Unknown or incorrect time zone:'Asia/Hong_Kong'查资料发现这个时区信息是存储在 mysql库的 time_zone_name表里,用root权限登入查询,发现没有数据。查资料:If you
2012-09-14 17:51:07 4859
转载 [php]short_open_tag 必须打开
在使用phpcms本地安装的过程中,到运行环境检测这一步,发现:short_open_tag 必须打开。从网上搜索相关资料时,发现,将php.ini文件中的short_open_tag = off 项,设置成on,重启服务器即可。short_open_tag 是什么呢?决定是否允许使用代码开始标志的缩写形式( )。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 。
2012-09-14 15:31:49 10353
原创 局部范围扫描[摘]
局部范围扫描的条件 通常在SQL中使用了ORDER BY 将无法实现局部范围扫描,但如果优化器选择的驱动索引列与ORDER BY 排序列相同,则可以按照局部范围扫描的方式进行处理。由此可见,并不是所有使用了ORDER BY的SQL都无法实现局部范围扫描,唯独在
2011-08-23 22:45:23 1034
原创 索引选定步骤[摘]
索引并不仅仅是为了特定的应用程序或特定的读取类型而创建的,在搜集读取类型时不仅要考虑现在正在使用的,也要顾及未来有可能出现的读取类型,通过对现有和可能出现的读取类型进行综合性的分析来创建战略性的索引。 按照系统所处阶段的不同可以将索引的构建工作分为两大类:
2011-08-16 01:10:29 730
原创 组合索引的特征[摘]
当组合索引的第一个索引列(通常称为先导列)没有出现在查询条件中时,一般情况下该索引无法被使用。组合索引最大的缺点就是当只为一部分索引列赋予了查询条件时,或者所使用的比较运算符大部分都是非“=”比较运算符时效率非常低下。 创建战略性的组合索引涉及两个非常重要的方
2011-08-11 23:41:04 866
原创 离散度和损益分界点
创建索引的目的是快速从整体集合中选择性地读取满足条件的一部分集合。在查询条件中既有对缩减查询范围起主要作用的驱动查询条件,也有单纯起检验作用的过滤查询条件,DBMS将全部满足这两种查询条件的最终结果输出给我们。由此可见,虽然获得的最终结果相同,但是随着查询条件所起作用的不同,内部
2011-08-08 22:55:48 1856
原创 不同类型表的索引应用准则[摘]
1.拥有数据量较少的小型表所谓小型表,是指一次I/O可以将表的全部数据块读取到内存中去,即存储表数据的数据块小于DB_FILE_MULTIBLOCK_READ_COUNT参数的设定。由于DBMS提供了多块读的功能,所以如果一次性就可以读取某个表的全部数据块,那么全表扫描与通过
2011-08-07 19:41:56 870
原创 集合操作执行计划[摘]
并集(Union,Union-All)合并集合是指合并不同的查询语句所获得的结果,也就是通过将必须要在同一个查询语句中进行复杂处理的集合分解为多个只需要简单处理的集合。从集合的加工运算上看,这里“复杂”的真正意思是指数据读取的复杂性。如:SELECT order_id,o
2011-08-03 22:40:39 1089
原创 排序操作执行计划
SORT(UNIQUE)该操作是指把查询语句的输出结果变成唯一集合的过程。出现该排序的情况有两种,一种是使用了“DISTINCT”,另外一种是子查询以提供者角色向主查询提供其执行结果。 SELECT order_id,order_dateFROM orders
2011-08-03 00:29:35 4173
原创 不建议使用OR的情况
1.连接的表拥有较大的查询范围;2.相同列的OR条件,这种情况下使用IN-List迭代比较有效;3.能够有效缩减查询范围的其他访问路径存在时;4.在使用OR连接的查询条件中,查询条件存在非常大的范围时。
2011-08-02 23:42:18 802
原创 表连接方式概念以及在执行计划中执行步骤[摘]
嵌套循环连接(Nested Loops Join) 嵌套循环连接的最核心特征就是最先被执行的表的查询范围决定着整体的数据处理量,后来反复执行的连接操作按照随机方式在执行。在嵌套循环连接时,当表中的数据量比较少时比较有效;而当表中的数据量比较大时不仅效率较低,而且所
2011-07-26 22:11:59 1545
原创 哈希聚簇读取(Hash Cluster Access)[摘]
聚簇是通过提高聚簇因子来提高物理I/O效率的有效方法,而哈希聚簇则是通过使用哈希函数所产生的哈希值来实现聚簇的一种类型,即具有相同哈希值的数据被存储在相同的数据块中以便提高聚簇因子。 利用索引从表中读取数据的方式必须要经历两个I/O,即索引I/O和表I/O。但是哈
2011-07-25 23:18:07 2676
原创 索引扫描
索引行的存储顺序与表中行的存储顺序之间的相似程度被称为聚簇因子。聚簇因子会随着这种相似程度的不同而不同。 当相类似行的密集程度比较高时,这些数据行就会被密集地存储在相对较少的数据块中,这是聚簇因子比较好的情况。相反,数据行被分散地存储在多个数据块中就是聚簇因子比较
2011-07-21 00:10:17 3002
Inside Microsoft SQL Server 2005 Query Tuning and Optimization
2009-07-30
Inside.Microsoft.SQL.Server.2005.The.Storage.Engine
2009-07-29
Inside.Microsoft.SQL.Server.2005.T-SQL.Programming
2009-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人