老K的博客

Kel Blog


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

gitlab-pull-request

发表于 2017-01-03   |  

GITLAB 中的 PULL REQUEST

gitlab貌似没有github,gogs里面的pull request功能,那么如果同步主项目仓库代码到自己的仓库呢?
操作步骤如下:
1 添加上流:

1
git remote add upstream URL

2 拉取upstream,这个会创建一个remote的 upstream/master 和 upstream/dev

1
git fetch upstream

3 合并upstream分支dev到 本地dev(当前的本地分支)

1
git merge upstream/dev

4 提交本地dev分支到remote

swoole-speed-up-laravel

发表于 2016-12-23   |  

1 Laravel的速度瓶颈在哪?

1.1 已有的一些优化方法

1.1.1 laravel官方提供了一些优化laravel的优化方法

1
2
3
$   php artisan optimize
$ php artisan config:cache
$ php artisan route:cache

1.1.2 使用opcache加速

PHP是个解释型语言执行的时候先得把程序读进来,由Zend引擎编译成opcode。最后Zend虚拟机顺次执行这些opcode完成操作。opcache起到的作用就是缓存opcode,从而减少编译的时间,减少CPU密集。

1.1.3 使用PHP7.1,不要问我为什么

1.2 磁盘IO上的瓶颈

Laravel本身启动需要的文件就很多,外加其出了名的生态环境好,开发中我们会很多很多现有的轮子,使得一次启动的磁盘IO特别高(就是要加载很多文件嘛),虽然官方的php artisan optimize方法优化了文件的加载,但并没有实际解决IO上的问题。
知道了问题那就很容易解决了,只要不要每次启动都重新加载就好了,下面轮到Swoole上场啦。


2 Swoole

Swoole是一个PHP扩展,使得PHP使用异步的方式执行,就像node一样,而且还能使用socket,为PHP提供了一系列异步IO、事件驱动、并行数据结构功能。具体的安装方法这就不说了,自己谷歌吧。


3 现有的轮子

搜搜github上已有的swoole启动laravel的轮子,找了三个轮子

scil/LaravelFly
chongyi/swoole-laravel-framework
garveen/laravoole

用了LaravelFly,听名字感觉感觉挺酷,结果不如人意,实在不喜欢它那种强硬的启动方式。跟Laravel的风格-‘优雅’ 很不搭。于是又想自己写,结果写到一半发现laravoole这个项目有更新,然后启动方式(使用artisan命令,没更新前是用的bash脚本启动),代码风格都很酷,这不就是我想做的东西嘛!


chongyi/swoole-laravel-framework这个轮子是我在写轮子的时候,作者在微信群里分享的,有兴趣的朋友可以试试,我还没试过。


4 LARAVOOLE中的几个注意点

可以看看作者的文档,我就只总结下我在用的过程中遇到的几个点
1 你没法不再使用一下的超全局变量,因为它们是WEB服务器创建的,而一个非热启动的项目使用他们可能会造成变量污染,你可以从Laravel的Request类中拿到你要的数据。

1
2
3
4
5
6
7
8
9
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

2 因为我要开发微信相关的,所以使用了EASYWECHAT这个包,但是这个包的oauth方法使用的是原生的SESSION,所以这边也要改成redis等其它方式去存储session。具体代码如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//在你的控制器或者中间件中
public function handle(Request $request, Closure $next)
//省略代码
$redirect = config('app.url') . $request->getRequestUri();//这个地址要求带着token

$options = [
'app_id' => config('app.appid'),
'secret' => config('app.secret'),
'oauth' => [
'scopes' => ['snsapi_userinfo'],
'callback' => $redirect,
],
];

$app = new Application($options);
//使用laravel session替代原生session
$app->oauth->setRequest($request);
//省略下面代码
}

3 不支持热启动了,所以每次更新代码后都需要重新启动Laravoole进程。

1
php artisan laravoole restart

如需要支持热启动,请自行谷歌 swoole + inotify,大概原理就是用inotify监控文件变更,如果更新了重启swoole,如果正式环境中还可以自己写个部署脚本,git pull后重启服务等,方法很多不一一列举。

5 愉快的准备测试啦

测试机子:
阿里云
centos6.5
双核
4G
无视带宽影响,向本机请求,测试结果如下,测了几次,平均在700RPS左右。原先的只有20多RPS。
img1.png
img2.png

php7快速安装

发表于 2016-12-15   |  

1 添加mirror

1
2
$    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
$ rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

2 yum 安装 php7

1
2
3
4
5
6
$    yum install php70w
$ yum install php70w-common
$ yum install php70w-fpm
$ yum install php70w-pdo
$ yum install php70w-xml
$ yum install php70w-mbstring

(因为我跑的是laravel,所以需要以上的一些扩展,其它请自行安装,如果需要其他扩展,请使用yum search php70w)
安装完后运行

1
2
$    service php-fpm restart
$ service nginx restart

错误日志请查看/var/log/php-fpm/www-error.log

Hello World

发表于 2016-01-18   |  

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Death Kel

Death Kel

能用钱解决的问题,现在我全都解决不了

4 日志
0 分类
4 标签
GitHub Weibo
© 2017 Death Kel
由 Hexo 强力驱动
主题 - NexT.Muse