阿里云Mysql读写分离使用笔记  

阿里云Mysql读写分离使用笔记 生产环境使用读写分离,直接通过阿里云的读写分离地址,而不是在代码层面上控制读写分离。 问题: 使用了读写分离之后,还是有大量的sql 查询请求被分配到主实例。 原因: 事务内select 语句会在主实例执行,所以如果有使用事务,必须提高事务的细粒度

Posted:2020-07-13  By vilay

系统线上故障排查过程思路  

系统线上故障排查过程思路 1. 系统磁盘空间是否足够 2. cpu,内存占用 3. 分析流量(是否达到系统带宽上线,由哪个域名引起的,由哪个url引起的) 4. 数据库慢sql(查看sql的执行计划) 5. 对比负载均衡每台服务器的差异 比如:数据库产生慢sql不一定就是数据库引起的,前端服务器如果进程卡死,导致sql连接一直保持在那边,也可能会导致数据库宕机。

Posted:2020-07-13  By vilay

Linux 使用logrotate 自动切割日志  

1. 安装 一般默认就有安装,查看下目录/etc/logrotate.d 没安装使用yum安装 yum install logrotate crontabs 2. 配置 默认配置 /var/log/nginx/*log { su root root create 0644 nginx nginx #以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件 daily # weekly,yearly,monthly rotate 10 #一次将存储10个归档日志。对于第11个归

Posted:2020-07-11  By vilay

Scrapy 安装问题  

1. etree,lxml包丢失问题 先卸载,然后重新安装 pip uninstall lxml 从网上下载whl的文件,先安装库 pip install wheel pip install xxx.lxml

Posted:2020-06-25  By vilay

Python 爬虫常用处理技巧  

1. 字符串特殊字符处理 采集回来的字段有可能经常会包含\xao,\n,之类的特殊字符 通过split()函数处理 ''.join(item['title'].split()) 2. 匹配字符串中的数字 import re res = re.findall('\d+',item['shi']) //返回数组 根据索引去 res[0],res[1] 3. 字符串切割 url ="https://www.nuxtv.com/article/570" url[url.find('/

Posted:2020-06-25  By vilay

Nginx Api网关  

大型Api网关有几个特性 1、不同的api服务由不同的子系统负责 2、每一个服务之间是相互独立的 3、每一个服务都需要支持横向扩展和负载均衡 4、每一个服务都需要高可用 有好多种方式实现 NGINX Kong Tyk Ambassador AWS API gateway 可以通过nginx做负载均衡来实现 location /a { proxy_pass http://192.168.1.92:9000/; } location /b { proxy_pass http://192.168.1.

Posted:2020-06-23  By vilay

Mysql 统计数据库重复记录  

Sql 语句 select user_id,user_name from users group by user_name having count(user_name) > 1;

Posted:2020-06-23  By vilay

Redis 慢查询  

1. 慢查询日志 slowlog get 20 #获取20条最近的慢查询日志 slowlog len #获取慢查询条数 2. 结果 17) 1) (integer) 78 #唯一性(unique)的日志标识符 2) (integer) 1576676483 #命令执行的时间 3) (integer) 11104 #查询执行时间,以微秒为单位 4) 1) "GET" #命令 2) "pmtproduct_main:9" #key 5) "192.1

Posted:2020-06-17  By vilay

Redis 统计key个数以及批量删除key  

1. 统计key个数 redis-cli keys "users:*" | wc -l 根据条件加上-h -a等参数 2. 批量删除key redis-cli -a 4568234 --scan --pattern vilay:* | xargs redis-cli -a 4568234 unlink 首先,使用redis-cli –scan –pattern 模糊匹配出了所有以vilay:开头的Redis Key,每个Key会输出为一行。 然后,通过

Posted:2020-06-17  By vilay

Redis 笔记  

1. info 命令 使用info 命令查看redis信息 info [section] section 可选值 server 获取 server 信息,包括 version, OS, port 等信息 clients 获取 clients 信息,如客户端连接数等 memory 获取 server 的内存信息,包括当前内存消耗、内存使用峰值 persistence 获取 server 的持久化配置信息 stats 获取 server 的一些基本统计信息,如处理过的连接数量等 replicatio

Posted:2020-06-15  By vilay

Mysql 开启慢日志  

1. 首先登录数据库查看是否开启了 show variables like '%slow%'; 查看下slow_query_log是on还是off 2. 修改配置文件 vi /etc/my.cnf slow_query_log=1 //开启 long_query_time=1 //超过1s算慢查询 log_queries_not_using_indexes=1 //记录没有索引的查询

Posted:2020-05-29  By vilay

接口API设计笔记  

1. Token token一般分为两种: api_token:用于访问不需要用户登录等操作 user_token:用于访问需要用户登录等操作 实现流程: 给每个应用,颁发一个appid跟appkey,appkey用于参数签名使用,保存到客户端(可能需要做点安全处理,防止泄露)。 2. 参数签名(Signature) 一般是所有参数(或者非空参数)进行排序+token+appkey+timestamp+nonce 通过加密算法进行加密,传到服务端,可以放到header里面,也可以直接当作参数。

Posted:2020-05-19  By vilay

fastcgi_finish_request提高页面响应速度  

当php运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request()的函数。 比如我们在处理大文件导出的时候,可能就会超时,导致页面响应失败,报502的错误。 例子1: echo 'hello'; fastcgi_finish_request(); echo 'world'; 结果只输出到hello就结束了。 echo 'hello'; fastcgi_finish_request(); file_put_contents('./test.txt',

Posted:2020-05-19  By vilay

Git 版本回退  

首先,找到要回退的版本号 git log --pretty=oneline 执行回退命令 git reset --hard 版本号 push到服务器 git push -f origin master 如果是gitlab,可能需要把master分支的保护模式去掉

Posted:2020-05-19  By vilay

Centos 安装ffmpeg  

1. 安装依赖 wget -c ftp://195.220.108.108/linux/dag/redhat/el6/en/x86_64/dag/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm rpm -Uhv rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm yum install automake autoconf make gcc gcc-c++ libtool zlib zlib-devel curl c

Posted:2020-05-15  By vilay