![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
web架构
宁无竹
这个作者很懒,什么都没留下…
展开
-
大型mongodb数据缓存集群设计
场景1、mongodb-cluster2、爬虫将数据写入mongodb3、更新频繁,每天千万左右4、mongodb查询频繁,每天1000万左右遇到的问题查询经常卡住,查找原因,发现更新频繁的时候,查询缓慢需求1、将数据缓存到内存2、缓存数据实时更新3、qps 达到20000/s解决方案因为查询只是根据一个id进行key查询,...原创 2020-02-25 09:25:52 · 314 阅读 · 0 评论 -
我们来做一个不可破解的验证码
我们先来分析一下市面上的验证码1、明显漏洞验证码有明显漏洞的验证码 一般是根本就不明白验证码是用来干什么的程序员设计出来,可能是产品设计上有个验证码,好,那我实现一个,或者是外包公司实现功能即可,根本不管客户死活下面是一个案例给用户一个数学运算,然后求结果, 结果这个数学运算,用字符的形式输出到页面上,而不是保存成一张图片,这种验证码,形同虚设2、数字,字母,中文验...原创 2019-12-05 12:00:28 · 736 阅读 · 0 评论 -
php常见使用的服务的长链接方法(mysql,redis,memcache,mongodb)
在一个高流量的服务器,如果不使用长链接的话 会造成大量的 time_wait ,这样就会导致没有可用的tcp资源,导致系统很慢,负载很高,还经常出现无法connect的情况所以我们需要长链接来解决问题mysql: $db_string='mysql:host='.$config['host'].';port='.$config['port'].';...原创 2019-07-25 14:29:35 · 282 阅读 · 0 评论 -
云服务器的cpu突然不够用,可能不是你的应用出了问题噢
最近每天早上十点高峰,应用服务器突然就卡死,cpu跑满,代码撤回几天前,检查各种服务,流量都无异常,一时找不到问题,怀疑网络慢,检测之后也无问题,最后在查看磁盘io的时候撇到了cpu的几个占用率 user 代表用户的应用使用占比system代表系统其中steal占了接近一半搜了下发现这个steal竟然是因为虚拟主机的宿主机cpu不够用导致的 马上联系...原创 2018-11-01 11:06:47 · 1292 阅读 · 0 评论 -
前端移动开发屏幕自适应的最好办法
前言因为移动端屏幕尺寸大小不一,前端开发的时候,往往根据psd大估摸的进行开发,利用百分比进行兼容这样做出来的页面和psd可能非常不一样,且开发缓慢 目的1、开发者只需要量取psd的尺寸直接写到css中,无需考虑屏幕兼容2、系统根据屏幕大小自动生成相应的css尺寸,小屏自动缩放,大屏自动放大,完全和psd相同 解决方案我们在写css的时候在相关尺寸的地方换一种方...原创 2018-07-17 18:18:01 · 2217 阅读 · 0 评论 -
php短链接设计
设计的主要问题,如何把一个url转成一个6位的字符串,且这些字符串不允许冲突,比如不能让两个不同的url生成同一个字符串有的同学可能说直接md5然后截前6位,但是这样很容出现冲突可能有的同学说用一个index来累加,但是6位的只能表达999999个链接,明显达不到要求,怎么办呢,笔者这里给一个思路既然是6位,那么每位如果可能出现 0-9 a-z A-Z 就有 62的6次方种可能这样能表达的最大值就...原创 2018-03-22 18:06:50 · 593 阅读 · 0 评论 -
如何设计一个健壮而且厉害防爬策略
0.首先你得有一个能扛住爬虫的可以计算黑白名单的数据库,当然我们选择redis,单台 qps 达到20000+,杠杠的,然后你得在不影响业务的情况下来验证爬虫,我们可以通过异步读取nginx的access.log进行校验,前台只需要在关键的功能点判断一下ip是否在黑名单即可1. 同一个ip在某个功能点一秒两次请求算爬虫,将ip加入黑名单,防住大部分的爬虫2 .截取一段请求列表,如果某一个u...原创 2018-01-08 21:50:41 · 436 阅读 · 0 评论 -
redis-cluster 性能调优
redis-cluster#关闭RDB防止fork进程的内存溢出问题save ""appendonly=yes#防止某个节点挂掉,整个cluster挂掉的问题cluster-require-full-coverage no#设置最大内存maxmemory 114532461221145324612228991029原创 2017-06-09 15:10:10 · 5320 阅读 · 0 评论 -
记一次redis-cluster分别重启之后发生的问题
phpfpm版本:7.0phpredis版本:3.1.2 三台redis实例分别重启之后,发生如下情形 1.php 的 fpm 数量无故增高,2.nginx 连接fpm 有超时502的情况3.某台redis一直占用85%的cpu 具体原因猜测: fpm在连接redis-cluster之后,redis服务正在loading,导致某种死循环的情形出现 ...原创 2017-06-09 15:01:22 · 1893 阅读 · 0 评论 -
Redis 的性能幻想与残酷现实
2011 年,当初选择 Redis 作为主要的内存数据存储,主要吸引我的是它提供多样的基础数据结构可以很方便的实现业务需求。另一方面又比较担心它的性能是否足以支撑,毕竟当时 Redis 还属于比较新的开源产品。但 Redis 官网宣称其是提供多数据结构的高性能存储,我们对其还是抱有幻想的。幻想要了解 Redis 的性能,我们先看看官方的基准性能测试数据,心里有个底。测试前提R转载 2016-10-08 17:19:25 · 469 阅读 · 0 评论 -
cgit增加代码高亮
绝对6的一逼原创 2016-03-24 11:10:51 · 877 阅读 · 1 评论 -
完美实现javascript继承
js的继承 主要是继承两个部分一个是写在函数体内 通过 this 定义的方法和属性代码function parent(){ this.name = 1; this.fuck = function(){ }}继承这种方法需要在初始化的时候进行继承,我看许多其他的例子 是通过实例化之后 进行处理,我觉得这样写 就没有继承的样子了所原创 2016-04-12 15:16:12 · 574 阅读 · 0 评论 -
记一次带宽跑满服务器卡死事故处理
1.突然网站打不开2.检查带宽情况,发现带宽跑满,考虑是cdn大量回源的问题3.ssh 艰难登上服务器,重启nginx4.网站恢复,检查log,发现大量 同段的ip请求网站的一些冷门文件,这些文件都没有被cdn缓存{"remote_addr":"140.205.253.185","host":"file.reco.cn","time":"09/Sep/2015:16:06:05 +原创 2015-09-09 16:14:32 · 1750 阅读 · 0 评论 -
ip查询地址接口架构思路记录
需要通过ip得到城市网上找了几个库,都是文件的,而且都有 demohttp://www.ipip.net/download.html看这个打开php的代码,发现每次都要读文件,文件大小大概1.5M如果有100个并发 那么需要150M的磁盘io有的同学说,我们用memcache,100个并发要占150M的局域网资源,而且每个请求 从mem得到1原创 2015-04-20 12:14:40 · 1417 阅读 · 0 评论