架构
文章平均质量分 93
@航空母舰
这个作者很懒,什么都没留下…
展开
-
我所熟悉的网站负载均衡技术
原创 2011-06-24 10:37:08 · 95 阅读 · 0 评论 -
初级网站架构图示
原创 2011-07-19 14:01:49 · 111 阅读 · 0 评论 -
Swoole MVC框架Hyperf(类似laravel)
其实超出浏览器,PHP仍有用武之地,Linux上PHP通过pcntl、posix、sysvshm、sysvmsg、libevent、 swoole、proctitle等PECL扩展支持,用纯PHP就可以编写不依赖Nginx/Apache的高性能Socket应用服务器(独立控制进程,以守护进程运行)Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的PHP5框架http://myleftstudio.com/<?phpclass ControllerBase exten.原创 2016-02-26 17:06:51 · 604 阅读 · 0 评论 -
并发网站压力测试工具
接影响用户体验。但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100% 和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数 性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。webbench是有名的网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。webbench能测试处在相同硬原创 2016-03-30 16:59:43 · 1718 阅读 · 0 评论 -
PHP 使用FastDFS搭建图片服务器
FastDFS官方介绍FastDFS是一款类GoogleFS的开源分布式文件系统,这是一款国产的开源DFS软件。它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,GoogleFS以及FastDFS、mogileFS、 HDFS、TFS等类GoogleFS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。 它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上...原创 2017-06-29 11:40:34 · 278 阅读 · 0 评论 -
Swoole那些坑
原创 2018-11-01 08:41:53 · 1147 阅读 · 0 评论 -
Kafka 消息中间件
提供路由并保证消息的传送;如果发送消息时接收者不可用,消息对列会保留消息,直到可以成功地传递它为止,当然,消息队列保存消息也是有期限的。二消息中间件特点1)解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2)冗余:消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用原创 2018-11-30 08:59:46 · 3668 阅读 · 1 评论 -
常用限流算法
比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪。使用缓存不单单能够提升系统访问速度、提高并发访问量,也是保护数据库、保护系统的有效方式。大型网站一般主要是“读”,缓存的使用很容易被想到。在大型“写”系统中,缓存也常常扮演者非常重要的角色。比如累积一些数据批量写入,内存里面的缓存队列(生产消费),以及HBase写数据的机制等等也都是通过缓存提升系统的吞吐量或者实现系统的保护措施。甚至消息中间件,你也可以认为是一种分布式的数据缓存。降级服务降级是当服务器压力剧增的情况下,根据当原创 2018-11-28 08:45:11 · 183 阅读 · 1 评论 -
常见缓存问题及解决方案
缓存无底洞概念:增加节点机器,性能没有提升反而下降了。以用户为例:user-133-age,user-133-name,user-133-height ... N个ke,当服务器增多的时候,133号用户的信息,也被更散落在更多的节点上,所以,同样是访问个人主页,得到相同的个人信息,节点越多,要连接的节点也越多,对于memecached的连接数,并没有随着节点的增多,而降低。于是出现了无底洞现象。Nosql与传统的RDBMS并不是水火不容,两者在某些设计上,是可以相互参考的,对于memcaced...原创 2018-11-30 11:04:30 · 301 阅读 · 0 评论 -
大型分布式架构设计与优化
原创 2018-11-14 09:46:47 · 172 阅读 · 0 评论 -
Nginx动静分离 负载均衡 反向代理
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。在Nginx的配置中,是通location配置段配合正则匹配实现静态与动态页面的不同处理方式1.前端Nginx收到静态请求,直接从NFS中返回给客户端。2.前端Nginx收到动态请求转交给通过FastCGI交给PHP服务.原创 2018-11-15 09:09:48 · 583 阅读 · 0 评论 -
sysbench对mysql压力测试
k是服务器压力测试强有力的工具,那么sysbench便是我们进行MySQL基准测试的很漂亮的工具了。sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL;Linux 各大发行版通过自带安装工具直接安装即可,RHEL/CentOS 的安装命令如下:sudo yum -y install sysbench它主要包括以下几种方式的测试:1、cpu性能2、磁盘io性能3、调度程序性能原创 2018-12-04 15:55:29 · 182 阅读 · 0 评论 -
使用XDebug和WinCacheGrind分析PHP性能
原创 2011-06-08 10:05:04 · 146 阅读 · 0 评论 -
谈谈网站性能技术
器的请求负载。因为http的请求都是短作业,所以,可以通过很简单的负载均衡器来完成这一功能。最好是有CDN网络让用户连接与其最近的服务器(CDN通常伴随着分布式存储)。(关于负载均衡更为详细的说明见“后端的负载均衡”) 二、减少前端链接数 我看了一下12306.cn,打开主页需要建60多个HTTP连接,车票预订页面则有70多个HTTP请求,现在的浏览器都是并发请求的。所以,只要有100万个用户,就会有6000万个链接,太多了。一个登录查询页面就好了。把js打成一个文件,把css也打成一个文件,把图标也打成一原创 2011-03-02 09:59:54 · 124 阅读 · 0 评论 -
大流量、高并发的网站的底层系统架构
原创 2010-11-16 19:49:01 · 95 阅读 · 0 评论 -
MYSQL MERGE存储引擎 分表
M的,INNODB如何做分表并且保留事务和外键,我还不是很了解。 首先,我们需要想好到底分多少个表,前提当然是满足应用。这里我使用了一个比较简单的分表方法,就是根据自增id的尾数来分,也就是说分0-9一共10个 表,其取值也很好做,就是对10进行取模。另外,还可以根据某一字段的md5值取其中几位进行分表,这样的话,可以分的表就很多了。好了,先来创建表吧,代码如下http://hudeyong926.iteye.com/blog/1845997set @field_list ='`id` BIGI原创 2011-02-10 12:26:46 · 158 阅读 · 0 评论 -
mysql 分库分表的方法
为什么要分库分表和读写分离类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可以有效地减小单台数据库的压力原创 2011-02-10 12:39:45 · 134 阅读 · 0 评论 -
MySQL高可用 主从复制
件mysql主从复制用途实时灾备,用于故障切换读写分离,提供查询服务备份,避免影响业务主从部署必要条件:主库开启binlog日志(设置log-bin参数)主从server-id不同从库服务器能连通主库主从原理MySQL的主从复制是一个异步的复制过程(虽然一般情况下感觉是实时的),数据将从一个Mysql数据库(我们称之为Master)复制到另一个Mysql数据库(我们称之为Slave),在Master与Slave之间实现整个主从复制的过程是由三个线程参与完成的。原创 2011-02-10 12:59:11 · 241 阅读 · 1 评论 -
安装Elasticsearch 全文搜索/大数据分析
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。Elasticsearch的应用场景一个线上商城系统,用户需要搜索商...原创 2011-02-11 11:42:43 · 186 阅读 · 0 评论 -
RabbitMQ 消息中间件
RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现安装服务端通过终端输入以下命令进行安装sudo apt install rabbitmq-server 开启web管理插件sudo rabbitmq-plugins enable rabbitmq_management 插件rabbitmq_management...原创 2019-03-07 11:25:42 · 751 阅读 · 1 评论