- 博客(236)
- 资源 (12)
- 收藏
- 关注
转载 NGINX将支持gRPC
摘要:gRPC已经是新一代微服务的标准RPC框架。对于实现来说,虽然可以用服务框架等手段来做到负载均衡,业界还没有针对gRPC的反向代理软件。NGINIX作为老牌负载均衡软件对gRPC进行了支持。本文作者简要介绍了NGINX这一特性。NGINX将在1.13.10版本中包含grpc相关功能。这个版本支持NGINX代理gRPC TCP连接。可以用来:发布gRPC服务,包括未加密/加密的gRPC服务。通...
2018-06-07 15:25:59
5025
翻译 Protocel Buffers - 生成PHP代码
编译器调用protobuf编译器使用--php_out = command-line 产生PHP输出。 --php_out 参数编译器编写PHP输出的目录。 为了符合PSR-4,编译器创建了与proto文件中定义的包相对应的子目录。 另外,对于proto文件输入中的每条消息,编译器会在程序包的子目录中创建一个单独的文件。 消息输出文件的名称由三部分组成:基本目录:使用输出路径(用--ph...
2018-06-06 16:19:01
1860
转载 对Repository模式误用的反思和纠正
一直以来想自己做一套开发框架,在其基础上进行快速开发,自从接触微软的MVC框架和Entityframework以来,阅读了大量园子里的相关的技术文章,也进行了不少摸索和尝试,中间经历了多次大刀阔斧的重构,现在总算有了雏形,把权限、模式和界面初步搞定,但是回头一看,依然有很多东西思路不够清晰,很多时候是在生搬硬套,不求甚解,结果搞出来一些四不像的东西。 入行近十年,项目经验和开发经验应当是很丰...
2018-03-13 20:32:32
654
转载 supervisor 管理进程简明教程
supervisor 管理进程简明教程1、Introduction(1) 基于python编写,安装方便(2) 进程管理工具,可以很方便的对用户定义的进程进行启动,关闭,重启,并且对意外关闭的进程进行重启 ,只需要简单的配置一下即可,且有web端,状态、日志查看清晰明了。(3) 组成部分 supervisord[服务端,所以要通过这个来启动它] supervisor
2018-01-31 17:16:46
1058
转载 MongoDB 3.0 常见集群的搭建(主从复制,副本集,分片....)
一、mongodb主从复制配置主从复制是mongodb最常用的复制方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活.可用于备份,故障恢复,读扩展等. 最基本的设置方式就是建立一个主节点和一个或多个从节点,每个从节点要知道主节点的地址. 结构图: 配置主从复制的注意点:在数据库集群中要明确的知道谁是主服务器,主服务器只有一台.从服务器要知道自己的数
2017-12-05 11:46:24
530
转载 echo框架使用:获取与配置
运行环境 1Linux :CentOS 7.0Go :go version go1.8 linux/amd64GOPATH :/root/sdk/go/lib运行环境 2Windows10Go :go version go1.8 windows/amd64GOPATH :C:\Go\lib安装 gityum insta
2017-09-08 12:19:31
4663
转载 热重启golang服务器(graceful restart golang http server)
服务端代码经常需要升级,对于线上系统的升级常用的做法是,通过前端的负载均衡(如nginx)来保证升级时至少有一个服务可用,依次(灰度)升级。而另一种更方便的方法是在应用上做热重启,直接升级应用而不停服务。原理热重启的原理非常简单,但是涉及到一些系统调用以及父子进程之间文件句柄的传递等等细节比较多。处理过程分为以下几个步骤:监听信号(USR2)收到信号时fork子进程(使
2017-09-06 17:51:11
6772
转载 Golang热重启
什么是热重启:新老程序(进程)无缝替换,同时可以保持对client的服务。让client端感觉不到你的服务挂掉了。 比如重新加载配置文件,需要重启一下,替换老程序需要重启一下,就需要用到热重启。但使用Golang的场景,其实直接在http proxy层面做切流量更方便.原理通过发送signal(信号)与进程间交互。 信号可以自己定义,指定拦截系统的信号,改变系统默认行为来自定义操作
2017-09-06 17:50:35
7234
1
转载 php+nginx做下载服务器配置—X-Accel-Redirect
网络存储下载服务器需求配置缘由:“传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应用程序内存,然后再把内存当中的内容发送给客户端浏览器。这种方式在应付当今大负载网站会消耗更多的服务器资源。sendfile是现代操作系统支持的一种高性能网络IO方式,操作系统内核的sendfile调用可以将文件内容直接推送到网卡的buffer当中,从而避免了Web服务器读写文件的开销,实现了“零
2017-08-08 23:21:22
3303
转载 supervisor使用详解
1.什么是supervisorsupervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程。2.supervisor的安装pip install supervisor3.supervisor的配置文件supervisor安装完毕后,会有一个配置文件supervisord.conf运行echo_supervisord_conf
2017-08-03 18:24:19
798
转载 go 数据库操作2
golang本身没有提供连接MySQL的驱动,但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/MySQL这个驱动,更新维护都比较好。下面演示下具体的使用,完整代码示例可以参考最后。下载驱动sudo go get github.com/go-sql-driver/mysql如
2017-07-18 13:46:55
1432
转载 go 数据库操作
Golang支持DB操作位于database包下,支持基本CRUD操作、事务和Prepared Statement,本文以MySQL为例。MySQL驱动安装 使用数据库之前,必须安装相关MySQL数据驱动[1],如果未安装驱动或者没有引入驱动库会报以下错误: failed to open database: sql: unknown driver "mysql" (forgotte
2017-07-18 11:49:35
1122
转载 新一代数据查询语言GraphQL来啦
1. GraphQL来啦!当Facebook构建移动应用的时候,它需要的是一个强大的数据获取API:足够强大,满足Facebook自身复杂业务的需求;足够简单,对开发者和使用者来说很容易上手与使用;GraphQL就是为了满足这一个需求而产生的,Facebook从2012年开始完善,与2015年展开GraphQL的开源的进程,并形成一个围绕GraphQL的社区。
2017-05-23 15:02:22
1306
转载 mongodb3.X权限配置
环境: CentOS6.8 mongodb3.4.11、连接mongodb数据库(如果mongo命令没有做环境变量配置,需要定位到有mongo命令的目录)[root@VM_118_34_centos ~]# mongoMongoDB shell version v3.4.1connecting to: mongodb://127.0.0.1:27017MongoDB s
2017-01-16 13:11:49
1127
转载 MySQL utf8mb4 字符集
遇到的问题有一个项目需要存储 emoji 表情。另外极少数中文在存储的时候也遇到 utf8 编码格式的数据库在储存时报错。Rails creating schema_migrations - Mysql2::Error: Specified key was too long问题原因mysql 里的 utf8 一个字符最多 3 字节,只支持 BMP 这部分的 un
2016-10-24 18:14:06
4282
转载 Nginx HTTPS 配置
我一度以为只要可以通过https访问网站SSL就算配置完成了,但前几天网友反馈说移动设备下出现证书错误,我还以为是刚配置完缓存的原因,后来自己查了一些资料,发现虽然自己的网站可以通过https访问了,但还有一些参数没有配置,造成了一些旧设备上出现证书错误。通过下面这个地址可以检测你的证书情况https://www.ssllabs.com/ssltest/index.html
2016-10-08 15:21:08
1978
转载 nginx安装ssl证书
首先说下https也就是ssl证书,一般我们认为https是安全的,但是SSL 证书的信用链体系并不安全。特别是在某些国家(咳咳,你们懂的)可以控制 CA 根证书的情况下,中间人攻击一样可行。另外,在客户端被植入无数后门、木马的状况下,HTTPS 连接的作用非常有限。好了,我们可以开始配置ssl了。一般来说我比较推荐namecheap的ssl证书,因为比较便宜,毕竟对大部分个人博客
2016-10-08 15:20:09
6904
转载 NSQ的安装运行以及编程实践
NSQ的安装运行以及编程实践配置Golang环境下载标准安装包https://golang.org/dl/解压到/usr/local目录sudo tar -xzvf go1.5.2.linux-amd64.tar.gz /usr/local在$HOME目录下创建文件夹gopath在~/.bashr
2016-09-14 11:45:28
3552
原创 CentOS编译安装PHP开发环境
CentOS编译安装PHP开发环境最近在安装服务器开发环境, 踩了不少坑, 这里总结下来. yum安装虽然简单, 却不灵活, 版本也比较老旧不合符设计中的选型, 因此只使用yum安装一些依赖库, 目标软件采用编译安装.目录安装PHP安装PHP扩展安装Phalcon框架安装MySQL安装MongoDB安装Redis安装PHPyum安装依赖库yum inst
2016-08-24 16:57:05
6576
1
转载 centos 手动增加swap分区
SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的。它类似于Windows中的虚拟内存。在Windows中,只可以使用文件来当作虚拟内存。而linux可以文件或者分区来当作虚拟内存。首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M):free -m此处可以看到总内存是503M,SWAP不存在。查看swap信息,包括文
2016-08-18 13:35:57
9784
转载 Linux查看系统信息命令和方法
一、linux查看服务器系统信息的方法:1、查看主机名/内核版本/CPU构架:# uname -n -r -p -olocalhost.localdomain 2.6.32-220.el6.i686 i6862、查看Linux系统类型和版本:# head -n 1 /etc/issueCentOS release 6.2 (Final)
2016-08-17 14:11:54
717
原创 go利用x/net/html包实现的蜘蛛
看了网上很多个spider版本, 几乎都是使用regexp包正则匹配实现.其实使用DOC, 性能更好, 也更优雅package mainimport ( "fmt" "net/http" "os" "golang.org/x/net/html")func visit(links []string, n *html.Node) []string {
2016-07-21 10:46:05
4273
原创 golang实现base62编码
package mainimport ( "fmt" "math")var base = []string {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G",
2016-07-05 14:15:05
2403
1
转载 建立自己的知识体系
转自: http://blog.youkuaiyun.com/hguisu/article/details/50392944整理内容:http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=400103116&idx=1&sn=89bc2f3644603ffcf5f2c517172141ba&scene=23&srcid=1025169A7lqdE
2016-06-30 18:59:24
2905
转载 Golang 中"泛型"的支持
Golang不支持一般的类似java中的标记式泛型。很多人因此而十分不满,认为没有泛型增加了很多工作量。而目前由于泛型支持的复杂性,Golang的设计和实现者并没有把这个泛型支持作为紧急需要增加的特性。但是,如果真的没有泛型,就一定不行了么?答案当然是否定的。没有泛型也可以,而且我觉得代码更简单,直接,有趣(个人观点,勿喷)。我们这里打算以一些例子来讲解Golang中如何处理这个问题。
2016-06-08 17:01:56
9303
转载 php-fpm 启动参数及重要配置详解
约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm的启动参数12345678910111213
2016-06-06 15:55:54
986
原创 Chip框架消息队列组件
简介目标: 使用PHP和Redis提供使用简单而功能强大的消息队列系统.安装目前内嵌到Chip框架, 也可以独立使用, 经过简单的修改可与其他核心模块完全解耦.概述创建队列自定义配置创建创建任务创建延时任务创建定时任务创建周期任务创建失败重试任务设定处理时长TTR处理任务任务状态调度控制并发模式使用说明配置文件在Chip里的c
2016-01-19 14:29:14
1054
转载 Screen会话命令
一、背景系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。二、简介GNU Screen是一款由GNU计
2016-01-12 15:20:26
4998
原创 PHP7新特性介绍
PHP7-New-Features本文档只介绍PHP7相关的新特性以及功能修改等, 对PHP7的性能和源码结构不做分析.目录新增功能常用的语法糖标量类型和返回类型声明错误处理机制修改ASTNative TLS字符串处理机制修改整型处理机制修改参数处理机制修改foreach修改list()修改变量处理机制修改其他语言层面的修改弃用功能新增函数修改函数其他修改参
2015-12-18 22:43:08
7842
转载 深入理解PHP7之zval
深入理解PHP7之zval转自: https://github.com/laruence/php7-internal/blob/master/zval.mdPHP7已经发布, 如承诺, 我也要开始这个系列的文章的编写, 今天我想先和大家聊聊zval的变化. 在讲zval变化的之前我们先来看看zval在PHP5下面是什么样子PHP5zval回顾在PHP5的时候
2015-12-17 14:27:24
6630
原创 Golang安装
一、Go的三种安装方式Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式:Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制。Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路n
2015-12-06 12:54:56
2305
转载 理解PHP 依赖注入
本文链接地址: 理解PHP 依赖注入|Laravel IoC容器好吧,标题党了,本文非原创啊!看Laravel的IoC容器文档只是介绍实例,但是没有说原理,之前用MVC框架都没有在意这个概念,无意中在phalcon的文档中看到这个详细的介绍,感觉豁然开朗,复制粘贴过来,主要是好久没有写东西了,现在确实很懒变得!首先,我们假设,我们要开发一个组件命名为SomeComp
2015-11-20 15:24:39
1857
转载 Linux 技巧:让进程在后台可靠运行的几种方法
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。nohup/setsid/&场景:如果只是临时有一个命令需要长时间运行,什么方法能最简便的保
2015-10-30 16:46:59
658
转载 linux 让你的进程后台运行
最近在学习相关内容,觉得有用就转载一下。fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的一。& 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行二。ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停三。jobs 查看当前有多少在后台运行的命令
2015-10-30 16:45:56
5047
转载 Redis 并发, 锁, 竞争锁问题.
背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍
2015-10-08 14:22:09
29662
1
转载 PHP CLI模式下的多进程应用
PHP在很多时候不适合做常驻的SHELL进程, 他没有专门的gc例程, 也没有有效的内存管理途径. 所以如果用PHP做常驻SHELL, 你会经常被内存耗尽导致abort而unhappy.而且, 如果输入数据非法, 而脚本没有检测, 导致abort, 也会让你很不开心.那? 怎么办呢?多进程….为什么呢? 优点: 1. 使用多进程, 子进程结束以后, 内核会
2015-10-01 19:49:40
1248
转载 谈谈MySQL水平扩展
问题背景工作中遇到数据库数据增长过快,单表一年之后预计到达35M行数据,可以预见MySQL性能将下降厉害,并且随着业务的规模化,担心单表将很难抗住并发压力,出现故障后恢复时间变长对业务影响也会变大,因此需要考虑数据水平扩展,目前项目采用Golang开发,一个Google开发的以简洁的语法,内建高并发模型,支持垃圾回收为主要特点的编译型语言,性能比Java好,开发效率比C/C++高,其目标是
2015-07-16 12:14:37
2656
转载 位运算总结 取模 取余
位运算应用口诀 清零取反要用与,某位置一可用或若要取反和交换,轻 轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的
2015-06-08 14:12:03
18253
转载 linux 链接ln的使用 创建和删除符号连接(软、硬链接)
1 . 使用方式 :ln [option] source_file dist_file (source_file是待建立链接文件的文件,dist_file是新创建的链接文件) -f 建立时,将同档案名删除. -i 删除前进行询问. ln -s abc cde 建
2015-05-22 16:15:31
853
转载 phpstorm8连接xdebug来调试php
这是一个深深的坑。网上的教程要么太老,要么太多错误的地方,试过了很多步骤都没成功,所以,这个坑我觉决定亲自填一下。1. 下载、安装和配置xdebug下载去官网下载最新的source源码,我写这篇文章的时候,最新版是xdebug-2.3.2。这是下载地址:http://www.xdebug.org/files/xdebug-2.3.2.tgz安装源码下载完成后,解
2015-05-20 17:01:59
7607
Phalcon1.3中文手册,纯手工翻译
2014-09-30
Zephir中文手册,纯手工翻译文档版
2014-09-30
利用uploadify封装好的多附件上传JS组件
2014-02-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人