<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[老鹰之歌的学习笔记]]></title><description><![CDATA[一个人应养成信赖自己的习惯, 即使在最危急的时候, 也要相信自己的勇敢与毅力.    ---Napoleon]]></description><link>https://blog.youkuaiyun.com/black_OX</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; black_OX]]></copyright><item><title><![CDATA[NGINX将支持gRPC]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/80609994</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/80609994</guid><author>black_OX</author><pubDate>Thu, 07 Jun 2018 15:25:59 +0800</pubDate><description><![CDATA[摘要：gRPC已经是新一代微服务的标准RPC框架。对于实现来说，虽然可以用服务框架等手段来做到负载均衡，业界还没有针对gRPC的反向代理软件。NGINIX作为老牌负载均衡软件对gRPC进行了支持。本文作者简要介绍了NGINX这一特性。NGINX将在1.13.10版本中包含grpc相关功能。这个版本支持NGINX代理gRPC TCP连接。可以用来：发布gRPC服务，包括未加密/加密的gRPC服务。通...]]></description><category></category></item><item><title><![CDATA[Protocel Buffers - 生成PHP代码]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/80596802</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/80596802</guid><author>black_OX</author><pubDate>Wed, 06 Jun 2018 16:19:01 +0800</pubDate><description><![CDATA[编译器调用

protobuf编译器使用--php_out = command-line 产生PHP输出。 --php_out 参数编译器编写PHP输出的目录。 为了符合PSR-4，编译器创建了与proto文件中定义的包相对应的子目录。 另外，对于proto文件输入中的每条消息，编译器会在程序包的子目录中创建一个单独的文件。 消息输出文件的名称由三部分组成：


基本目录：使用输出路径（用--ph...]]></description><category></category></item><item><title><![CDATA[对Repository模式误用的反思和纠正]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/79546196</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/79546196</guid><author>black_OX</author><pubDate>Tue, 13 Mar 2018 20:32:32 +0800</pubDate><description><![CDATA[一直以来想自己做一套开发框架，在其基础上进行快速开发，自从接触微软的MVC框架和Entityframework以来，阅读了大量园子里的相关的技术文章，也进行了不少摸索和尝试，中间经历了多次大刀阔斧的重构，现在总算有了雏形，把权限、模式和界面初步搞定，但是回头一看，依然有很多东西思路不够清晰，很多时候是在生搬硬套，不求甚解，结果搞出来一些四不像的东西。    入行近十年，项目经验和开发经验应当是很丰...]]></description><category></category></item><item><title><![CDATA[supervisor 管理进程简明教程]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/79219794</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/79219794</guid><author>black_OX</author><pubDate>Wed, 31 Jan 2018 17:16:46 +0800</pubDate><description><![CDATA[supervisor 管理进程简明教程
1、Introduction
(1) 基于python编写，安装方便
(2) 进程管理工具，可以很方便的对用户定义的进程进行启动，关闭，重启，并且对意外关闭的进程进行重启 ，只需要简单的配置一下即可，且有web端，状态、日志查看清晰明了。
(3) 组成部分 supervisord[服务端，所以要通过这个来启动它]
            supervisor]]></description><category></category></item><item><title><![CDATA[MongoDB 3.0 常见集群的搭建(主从复制，副本集，分片....)]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/78718119</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/78718119</guid><author>black_OX</author><pubDate>Tue, 05 Dec 2017 11:46:24 +0800</pubDate><description><![CDATA[一、mongodb主从复制配置

主从复制是mongodb最常用的复制方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活.可用于备份,故障恢复,读扩展等. 
最基本的设置方式就是建立一个主节点和一个或多个从节点,每个从节点要知道主节点的地址. 
结构图: 


配置主从复制的注意点:


在数据库集群中要明确的知道谁是主服务器,主服务器只有一台.从服务器要知道自己的数]]></description><category></category></item><item><title><![CDATA[echo框架使用：获取与配置]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/77893260</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/77893260</guid><author>black_OX</author><pubDate>Fri, 08 Sep 2017 12:19:31 +0800</pubDate><description><![CDATA[运行环境 1
Linux   :CentOS 7.0
Go      :go version go1.8 linux/amd64
GOPATH  :/root/sdk/go/lib


运行环境
 2
Windows10
Go      :go version go1.8 windows/amd64
GOPATH  :C:\Go\lib



安装
 git
yum insta]]></description><category></category></item><item><title><![CDATA[热重启golang服务器(graceful restart golang http server)]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/77869500</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/77869500</guid><author>black_OX</author><pubDate>Wed, 06 Sep 2017 17:51:11 +0800</pubDate><description><![CDATA[服务端代码经常需要升级，对于线上系统的升级常用的做法是，通过前端的负载均衡（如nginx）来保证升级时至少有一个服务可用，依次（灰度）升级。
而另一种更方便的方法是在应用上做热重启，直接升级应用而不停服务。
原理

热重启的原理非常简单，但是涉及到一些系统调用以及父子进程之间文件句柄的传递等等细节比较多。
处理过程分为以下几个步骤：

监听信号（USR2）收到信号时fork子进程（使]]></description><category></category></item><item><title><![CDATA[Golang热重启]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/77869479</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/77869479</guid><author>black_OX</author><pubDate>Wed, 06 Sep 2017 17:50:35 +0800</pubDate><description><![CDATA[什么是热重启:
新老程序（进程）无缝替换，同时可以保持对client的服务。让client端感觉不到你的服务挂掉了。 比如重新加载配置文件，需要重启一下，替换老程序需要重启一下，就需要用到热重启。但使用Golang的场景，其实直接在http proxy层面做切流量更方便.

原理
通过发送signal(信号)与进程间交互。 信号可以自己定义，指定拦截系统的信号，改变系统默认行为来自定义操作]]></description><category></category></item><item><title><![CDATA[php+nginx做下载服务器配置—X-Accel-Redirect]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/76945215</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/76945215</guid><author>black_OX</author><pubDate>Tue, 08 Aug 2017 23:21:22 +0800</pubDate><description><![CDATA[网络存储下载服务器需求配置
缘由：
“传统的Web服务器在处理文件下载的时候，总是先读入文件内容到应用程序内存，然后再把内存当中的内容发送给客户端浏览器。这种方式在应付当今大负载网站会消耗更多的服务器资源。sendfile是现代操作系统支持的一种高性能网络IO方式，操作系统内核的sendfile调用可以将文件内容直接推送到网卡的buffer当中，从而避免了Web服务器读写文件的开销，实现了“零]]></description><category></category></item><item><title><![CDATA[supervisor使用详解]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/76641908</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/76641908</guid><author>black_OX</author><pubDate>Thu, 03 Aug 2017 18:24:19 +0800</pubDate><description><![CDATA[1.什么是supervisor
supervisor是用python写的一个进程管理工具，用来启动，重启，关闭进程。

2.supervisor的安装

pip install supervisor


3.supervisor的配置文件
supervisor安装完毕后，会有一个配置文件supervisord.conf
运行

echo_supervisord_conf
]]></description><category></category></item><item><title><![CDATA[go 数据库操作2]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/75299964</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/75299964</guid><author>black_OX</author><pubDate>Tue, 18 Jul 2017 13:46:55 +0800</pubDate><description><![CDATA[golang本身没有提供连接MySQL的驱动，但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库，第三方库推荐使用https://github.com/Go-SQL-Driver/MySQL这个驱动，更新维护都比较好。下面演示下具体的使用，完整代码示例可以参考最后。

下载驱动
sudo go get github.com/go-sql-driver/mysql

如]]></description><category></category></item><item><title><![CDATA[go 数据库操作]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/75287715</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/75287715</guid><author>black_OX</author><pubDate>Tue, 18 Jul 2017 11:49:35 +0800</pubDate><description><![CDATA[Golang支持DB操作位于database包下,支持基本CRUD操作、事务和Prepared Statement,本文以MySQL为例。

MySQL驱动安装 
使用数据库之前,必须安装相关MySQL数据驱动[1],如果未安装驱动或者没有引入驱动库会报以下错误： 
failed to open database: sql: unknown driver "mysql" (forgotte]]></description><category></category></item><item><title><![CDATA[新一代数据查询语言GraphQL来啦]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/72639871</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/72639871</guid><author>black_OX</author><pubDate>Tue, 23 May 2017 15:02:22 +0800</pubDate><description><![CDATA[1. GraphQL来啦！

当Facebook构建移动应用的时候，它需要的是一个强大的数据获取API:


足够强大，满足Facebook自身复杂业务的需求；
足够简单，对开发者和使用者来说很容易上手与使用；


GraphQL就是为了满足这一个需求而产生的，Facebook从2012年开始完善，与2015年展开GraphQL的开源的进程，并形成一个围绕GraphQL的社区。]]></description><category></category></item><item><title><![CDATA[mongodb3.X权限配置]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/54573104</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/54573104</guid><author>black_OX</author><pubDate>Mon, 16 Jan 2017 13:11:49 +0800</pubDate><description><![CDATA[环境:　CentOS6.8  mongodb3.4.1

1、连接mongodb数据库(如果mongo命令没有做环境变量配置，需要定位到有mongo命令的目录)


[root@VM_118_34_centos ~]# mongo
MongoDB shell version v3.4.1
connecting to: mongodb://127.0.0.1:27017
MongoDB s]]></description><category></category></item><item><title><![CDATA[MySQL utf8mb4 字符集]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/52914055</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/52914055</guid><author>black_OX</author><pubDate>Mon, 24 Oct 2016 18:14:06 +0800</pubDate><description><![CDATA[遇到的问题

有一个项目需要存储 emoji 表情。另外极少数中文在存储的时候也遇到 utf8 编码格式的数据库在储存时报错。

Rails creating schema_migrations - Mysql2::Error: Specified key was
 too long

问题原因

mysql 里的 utf8 一个字符最多 3 字节，只支持 BMP 这部分的 un]]></description><category></category></item><item><title><![CDATA[Nginx HTTPS 配置]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/52756888</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/52756888</guid><author>black_OX</author><pubDate>Sat, 08 Oct 2016 15:21:08 +0800</pubDate><description><![CDATA[我一度以为只要可以通过https访问网站SSL就算配置完成了，但前几天网友反馈说移动设备下出现证书错误，我还以为是刚配置完缓存的原因，后来自己查了一些资料，发现虽然自己的网站可以通过https访问了，但还有一些参数没有配置，造成了一些旧设备上出现证书错误。

通过下面这个地址可以检测你的证书情况

https://www.ssllabs.com/ssltest/index.html

]]></description><category></category></item><item><title><![CDATA[nginx安装ssl证书]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/52756880</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/52756880</guid><author>black_OX</author><pubDate>Sat, 08 Oct 2016 15:20:09 +0800</pubDate><description><![CDATA[首先说下https也就是ssl证书，一般我们认为https是安全的，但是SSL 证书的信用链体系并不安全。特别是在某些国家（咳咳，你们懂的）可以控制 CA 根证书的情况下，中间人攻击一样可行。另外，在客户端被植入无数后门、木马的状况下，HTTPS 连接的作用非常有限。



好了，我们可以开始配置ssl了。一般来说我比较推荐namecheap的ssl证书，因为比较便宜，毕竟对大部分个人博客]]></description><category></category></item><item><title><![CDATA[NSQ的安装运行以及编程实践]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/52536523</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/52536523</guid><author>black_OX</author><pubDate>Wed, 14 Sep 2016 11:45:28 +0800</pubDate><description><![CDATA[NSQ的安装运行以及编程实践
配置Golang环境


下载标准安装包

https://golang.org/dl/






解压到/usr/local目录sudo tar -xzvf go1.5.2.linux-amd64.tar.gz /usr/local






在$HOME目录下创建文件夹gopath






在~/.bashr]]></description><category></category></item><item><title><![CDATA[CentOS编译安装PHP开发环境]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/52302086</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/52302086</guid><author>black_OX</author><pubDate>Wed, 24 Aug 2016 16:57:05 +0800</pubDate><description><![CDATA[CentOS编译安装PHP开发环境


最近在安装服务器开发环境, 踩了不少坑, 这里总结下来. yum安装虽然简单, 却不灵活, 版本也比较老旧不合符设计中的选型, 因此只使用yum安装一些依赖库, 目标软件采用编译安装.

目录

安装PHP安装PHP扩展安装Phalcon框架安装MySQL安装MongoDB安装Redis
安装PHP
yum安装依赖库

yum inst]]></description><category></category></item><item><title><![CDATA[centos 手动增加swap分区]]></title><link>https://blog.youkuaiyun.com/black_OX/article/details/52240204</link><guid>https://blog.youkuaiyun.com/black_OX/article/details/52240204</guid><author>black_OX</author><pubDate>Thu, 18 Aug 2016 13:35:57 +0800</pubDate><description><![CDATA[SWAP是Linux中的虚拟内存，用于扩充物理内存不足而用来存储临时数据存在的。它类似于Windows中的虚拟内存。在Windows中，只可以使用文件来当作虚拟内存。而linux可以文件或者分区来当作虚拟内存。

首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M)：
free -m


此处可以看到总内存是503M,SWAP不存在。

查看swap信息，包括文]]></description><category></category></item></channel></rss>