每周阅读清单 -20190512
技术
详解 DNS 与 CoreDNS 的实现原理
分布式事务的实现原理
GraphQL 在微服务架构中的实践
浅谈 MVC、MVP 和 MVVM 架构模式
Git 的奇技淫巧
分库分表技术演进 & 最佳实践
从原则、方案、策略及难点阐述分库分表
生活
Keep reading. Keep running.
开启 nginx 和 php-fpm 的 status 状态监控
本文基于 ubuntu16.04 php7.0
最近服务器的 php-fpm 进程偶尔会异常飙升,于是想在 zabbix 上配置监控服务器的 nginx 和 php-fpm 的状态。前提是需要开启 nginx 和 php-fpm 的 status 功能。
启用 nginx status 配置
配置 server ,一般我们在默认的主机下配置:
12345678910111213141516171819server { #listen 80; listen 80 default_server; root /var/www/html; index index.php index.html index.htm; server_name 127.0.0.1; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/ph ...
Mac 下 SourceTree 安装 BeyondCompare
使用 git 的同学对 SourceTree 一定不陌生,可以很方便的进行 git 操作。但是其自带的文件对比工具却不太好用,在有大量文件冲突的情况下,有好的文件对比工具可以很大的提高效率。
BeyondCompare 则是一个很优雅,且功能强大的文件对比工具,可以很方便的比较两个文件的差异,而且可以很好的集成到 SourceTree 中,windows 下的安装本文就不介绍了,本文主要讲一下 osx 下 SourceTree 集成 BeyondCompare 工具。
1. 首先我们默认已经安装好了 SourceTree(神马,还没有装,震惊!)。
2. 下载 BeyondCompare 并安装BeyondCompare 官方下载地址:http://www.scootersoftware.com/download.php
BeyondCompare 是收费的,虽然价格有点贵,但是绝对值得入手!当然,也可以自行搜索各种黑科技,但是品质不保证。
3. 将 BeyondCompare 加入系统命令
ln -s /Applications/Beyond\ Compare.app/Cont ...
三步开启 hexo 博客 RSS
最近捣鼓了一下博客的 RSS,配置的过程还是十分简单的,三步开启 hexo 的 RSS。
安装 RSS 插件
npm install hexo-generator-feed –save
配置 hexo 配置文件_config.yml
#RSS 订阅plugin:
hexo-generator-feed#Feed Atomfeed:type: atompath: atom
开启 theme 的 RSS 支持 一些主题已经默认开启了 RSS 配置,如果没有,则需要手动配置。目前博客使用的主题为 Next,对应的修改文件:themes/next/_config.yml。
subnav:rss: /atom.xml
本地测试生成 RSS
hexo cleanhexo ghexo s
hexo 命令的简单说明可以参考之前的一篇博文:hexo 使用札记 - 常用命令
Mac 下 Chrome 的优雅操作
标签页和窗口快捷键
⌘-N
打开新窗口
⌘-T
打开新标签页
⌘-Shift-N
在隐身模式下打开新窗口
按 ⌘-O,然后选择文件
在 Chrome 浏览器中打开计算机中的文件
按住 ⌘ 的同时点击链接。或用鼠标中键(或鼠标滚轮)点击链接
从后台在新标签页中打开链接
按住 ⌘-Shift 的同时点击链接。或按住 Shift 键的同时用鼠标中键(或鼠标滚轮)点击链接
在新标签页中打开链接并切换到刚打开的标签页
按住 Shift 键的同时点击链接
在新窗口中打开链接
⌘-Shift-T
重新打开上次关闭的标签页。Chrome 浏览器可记住最近关闭的 10 个标签页
将标签页拖出标签栏
在新窗口中打开标签页
将标签页从标签栏拖到现有窗口中
在现有窗口中打开标签页
同时按 ⌘-Option 和向右箭头键
切换到下一个标签页
同时按 ⌘-Option 和向左箭头键
切换到上一个标签页
⌘-W
关闭当前标签页或弹出窗口
⌘-Shift-W
关闭当前窗口
点击并按住浏览器工具栏中的后退或前进箭头
在新标签页中显示浏览历史记录
按 D ...
hexo 使用札记 - 常用命令
今年前一段时间将博客从 jeklly 转到 hexo ,感觉还是非常好用的,hexo 的常用命令不多,本文就介绍一下使用 hexo 的常用基本命令。
hexo cl
全名:hexo clean
清除缓存文件 db.json 和已生成的静态文件 public。
hexo g
全名: hexo generate
生成网站静态文件,默认保存在 public 文件夹。
由于 hexo 源文件可读性不强,使用 hexo g 可以将 hexo 源文件生成静态文件,便于调试,生成的静态文件可以直接部署网站。
hero s
全名:hexo server
启动本地服务器,访问本地 hexo 项目,默认的访问地址是 http://localhost:4000/ ,可以很方便的在本地预览博客样式和内容。
修改文章内容或是修改样式代码,不需要重新运行 hexo s 重启本地服务器,只需要保存文件后刷新页面即可看到效果。若是修改了 hexo 根目录下的 _config.yml ,则需要重新运行 hexo s 命令重启本地服务器。
hero d
全名:hexo deploy
生成网站的静态文件 ...
MySQL 主从复制 -Could not initialize master info structure
最近开始摸索 MySQL 主从复制,在测试环境进行了相关测试,也遇到了不少的坑。如在从库设置同步的时候,报如下错误:
ERROR 1201 (HY000): Could not initialize master info structure .
出现这个错误的原因是因为从库之前已经做过主从复制, 所以需要先停止从库,再进行从库同步设置。
具体的解决方法如下:
123456789mysql> change master to master_host='192.168.1.51', master_user='replslave', master_password='replslave', master_log_file='mysql-bin-000002',master_log_pos=168; ERROR 1201 (HY000): Could not initialize master info structure; more error messa ges can be foun ...
阅读书单
TEST.
Some books.
从源码角度看 php 自增和自减
自增和自减基础 学过编程语言的同学应该都可以随口说出 ++a 和 a++ 的区别,具体的区别如下:
Example
Name
Effect
++$a
Pre-increment
Increments $a by one, then returns $a.
$a++
Post-increment
Returns $a, then increments $a by one.
–$a
Pre-decrement
Decrements $a by one, then returns $a.
$a–
Post-decrement
Returns $a, then decrements $a by one.
++a 表示取 a 的地址,增加内存中 a 的值,然后把值放在寄存器中。a++ 表示取 a 的地址,把 a 的值装入寄存器中,然后增加内存中 a 的值。
php 中的递增和递减
官方文档:http://php.net/manual/zh/language.operators.increment.php
在 php 中,通常情况下的递增和递减没什么特别,下面 ...
SAE 部署 JavaWeb 项目报 404 错误
今天写了一个小的 JavaWeb 项目传到 SAE 上,访问的时候出错。本地测试是正常的,而且以前做微信平台开发的时候上传的项目就可以正常访问。于是花了两个小时的时间终于找出了错误的原因。
错误信息如下:
Error 404 – Not Found.No context on this server matched or handled this request.Contexts known to this server are
根据网上的资料,可能是项目中的 servlet-api.jar 等 jar 包与 SAE 平台提供的 jar 包相冲突。于是将项目打包成 war 包后,删除 lib 下的相关 jar 包。重新上传测试,发现还是报相同的错误。
第一步不成,无计可施,我将项目中 web.xml 中关于 servlet 的部分删除之后,在根目录下新建一个 index.jsp 页面,重新编译上传,可以正常访问。
可见还是 Java 部分出现了问题,既然前面已经排除了 servlet-api.jar 等 jar 包冲突问题,那还会是其他什么原因呢?
再经过在网上查找, ...