<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lockheed_Hong的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lockheed_Hong</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lockheed_Hong]]></copyright><item><title><![CDATA[如何在技术领域快速成长]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/78275491</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/78275491</guid><author>Lockheed_Hong</author><pubDate>Wed, 18 Oct 2017 17:34:42 +0800</pubDate><description><![CDATA[摘要： 工作前三年是职业生涯中成长最快的几年，在这段时间里你会充满激情，做事专注，也容易养成良好的习惯。在我们公司有些同学在前三年中就快速成为某一个领域的技术专家，有些同学也可能止步不前。本文和大家一起探讨下如何在三年内快速成长为一名技术专家。


工作前三年是职业生涯中成长最快的几年，在这段时间里你会充满激情，做事专注，也容易养成良好的习惯。在我们公司有些同学在前三年中就快速成为某一个领域]]></description><category></category></item><item><title><![CDATA[CDN的基本工作过程]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/78241783</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/78241783</guid><author>Lockheed_Hong</author><pubDate>Sun, 15 Oct 2017 16:49:31 +0800</pubDate><description><![CDATA[摘要： 使用CDN会极大地简化网站的系统维护工作量，网站维护人员只需将网站内容注入CDN的系统，通过CDN部署在各个物理位置的服务器进行全网分发，就可以实现跨运营商、跨地域的用户覆盖。由于CDN将内容推送到网络边缘，大量的用户访问被分散在网络边缘，不再构成网站出口、互联互通点的资源挤占，也不再需要跨越长距离IP路由了。 CDN是如何工作的呢？先看看没有CDN服务时，一个网站是如何向用户提供服务的]]></description><category></category></item><item><title><![CDATA[redis bitmap的秘密]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/78241516</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/78241516</guid><author>Lockheed_Hong</author><pubDate>Sun, 15 Oct 2017 16:17:05 +0800</pubDate><description><![CDATA[摘要：redis现在已经是被很普遍使用的工具了，但很多人可能对于redis内的bitmap还并不熟悉甚至不知道。bitmap是属于string类型的一种数据结构，说到底就是1/0存储的bit位数据，可以用于很多的统计、数据分析等应用场景（互补于hadoop等一些重量级工具），由于是使用计算机最基本的存储结构，所以存储空间消耗非常低，并且可以做各种告诉运算。下面就是一篇从bitmap数据结构到实际应]]></description><category></category></item><item><title><![CDATA[mysql基础，binlog，redo log，undolog]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/77922096</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/77922096</guid><author>Lockheed_Hong</author><pubDate>Sun, 10 Sep 2017 14:36:29 +0800</pubDate><description><![CDATA[1. binlog是MySQL Server层记录的日志， 
redo log是InnoDB存储引擎层的日志。 两者都是记录了某些操作的日志(不是所有)自然有些重复（但两者记录的格式不同）。
2. 选择binlog日志作为replication我想主要原因是MySQL的特点就是支持多存储引擎，为了兼容绝大部分引擎来支持复制这个特性，那么自然要采用MySQL Server自己记录的日志而不是仅仅]]></description><category></category></item><item><title><![CDATA[无意中看到的一个很有意思的面试题，来做做~]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/77053892</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/77053892</guid><author>Lockheed_Hong</author><pubDate>Thu, 10 Aug 2017 15:48:31 +0800</pubDate><description><![CDATA[摘要：无意中在其他人的博客看到一道面试题，非常有意思。给出了一个简单的需求和代码段，然后要求面试者提出问题并修复优化。首先是形式特别，一般都是直接提出问题，博主也一直都是这个思路，这里给出了让面试者修复和优化代码的机会。其二，用一个简单的需求包含了很多基础点，很能考验面试者的真功力。这篇博文先放出问题，大家可以在评论回答（建议用1.2.3.4这种形式列出），之后还有另一篇文章会公布结果。
<?php]]></description><category></category></item><item><title><![CDATA[PHP RabbitMQ 实践第三部 - 工作队列]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/76431442</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/76431442</guid><author>Lockheed_Hong</author><pubDate>Mon, 31 Jul 2017 13:42:43 +0800</pubDate><description><![CDATA[工作队列（使用php-amqplib库） 
 
在本教程第一部分 我们已经写完了从一个指定队列发送和接收消息的程序。在这一章节中，我们会创建一个工作队列（Work Queue）来分发耗时的任务给多个工作者（worker）。工作队列（也被称为 任务队列-task queue）主要是避免立即执行资源密集型任务并且还要等待它执行完毕。相反，需要让任务稍后执行，我们把一个任务当做一条信息发送给队列，后台运行]]></description><category></category></item><item><title><![CDATA[PHP RabbitMQ 实践第二步 - 简单应用]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/76430178</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/76430178</guid><author>Lockheed_Hong</author><pubDate>Mon, 31 Jul 2017 13:29:47 +0800</pubDate><description><![CDATA[rabbitMQ的一些概念的落地与实践操作，借用了php-amqplib对rmq进行操作。内容都是引自于rabbitMQ的官网，所以可以确保可靠性，并对内容做了挑选，如果要查看原文，在文章结尾处有原文地址。
准备工作先决条件本教程先决条件是RabbitMQ已经安装并正在以5672端口运行在 localhost，如果你使用了不同的域，端口，用户，密码，连接配置需要适当改变。获得帮助如果在本教程中遇到问]]></description><category></category></item><item><title><![CDATA[rabbitMQ php实践第一步，安装与其中的坑]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/76070312</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/76070312</guid><author>Lockheed_Hong</author><pubDate>Tue, 25 Jul 2017 14:50:33 +0800</pubDate><description><![CDATA[摘要：经过了两天的rabbitMQ的理论学习，决定开始实践。本想着一个中间件的安装应该挺简单的，没想到也是大坑跌出，最终把经验记录一下


一、安装rabbitMQ
rabbitMQ（以下全部简称为rmq）是由erlang编写的，在安装rmq之前应该还要安装erlang的环境。不过在mac上由于homebrew的存在就是这一切变得很简单：


$ brew update
$ bre]]></description><category></category></item><item><title><![CDATA[PHP五大运行模式]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75645567</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75645567</guid><author>Lockheed_Hong</author><pubDate>Fri, 21 Jul 2017 14:34:28 +0800</pubDate><description><![CDATA[php一共分为五大运行模式：包括cgi 、fast-cgi、cli、isapi、apache 模块的 DLL




CGI
CGI即通用网关接口(Common Gateway Interface)，它是一段程序，通俗的讲CGI就象是一座桥，把网页和WEB服务器中的执行程序连接起来，它把HTML接收的指令传递给服务器的执 行程序，再把服务器执行程序的结果返还给HTML页。CGI 的跨平]]></description><category></category></item><item><title><![CDATA[PHP Input/Output缓冲区]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75644281</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75644281</guid><author>Lockheed_Hong</author><pubDate>Fri, 21 Jul 2017 14:17:58 +0800</pubDate><description><![CDATA[摘要：这也是一篇修炼内功的博文，文章主题是转载，标记上了重点和添加了一些自己的理解。





什么是缓冲区




 缓冲区又称为缓存（备注1），它是内存空间的一部分。也就是说，在内存空间中预留了一定的存储空间，这些存储空间用来缓冲输入或输出的数据，这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备，分为输入缓冲区和输出缓冲区。
为什么要引入缓冲区
]]></description><category></category></item><item><title><![CDATA[mac OS下的资源限制 以及 引出的ulimit, launchctl, sysctl区别]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75258600</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75258600</guid><author>Lockheed_Hong</author><pubDate>Mon, 17 Jul 2017 18:10:55 +0800</pubDate><description><![CDATA[今天在模拟一个大量socket连接的时候系统告诉我 socket:Too many open files，之后在查阅怎么修改配置的时候发现了有好几种方式，ulimit, launchctl, sysctl都可以修改文件打开上限，但是在cli下launchctl和sysctl的maxfiles修改都只是改变了参数，cli下的socket连接依然无法创建更多。折腾了将近一下午，终于解决问题，把这些理清]]></description><category></category></item><item><title><![CDATA[深入PHP内核（一）——弱类型变量原理探究]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75257601</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75257601</guid><author>Lockheed_Hong</author><pubDate>Mon, 17 Jul 2017 17:13:30 +0800</pubDate><description><![CDATA[摘要：深入PHP内核系列为转载，从弱类型实现到SAPI（server application programming interface）实现，探索php不同的运行模式以及生命周期。博主在从新拿出这篇文章的时候顺便仔细的从新划了一遍重点，一直很认可下面原作者的一段话，这里提前引用了一下：


技术的深入学习就像职业篮球训练，80%的时间都是基本功的训练，球场上实际战术的练习只是基本功的应用。]]></description><category></category></item><item><title><![CDATA[PHP并发IO编程之路]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75047335</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/75047335</guid><author>Lockheed_Hong</author><pubDate>Thu, 13 Jul 2017 11:13:23 +0800</pubDate><description><![CDATA[引言：这是一篇转载自rango的文章，根据自己的理解划了重点。





并发IO问题一直是服务器端编程中的技术难题，从最早的同步阻塞直接Fork进程，到Worker进程池/线程池，到现在的异步IO、协程。PHP程序员因为有强大的LAMP框架，对这类底层方面的知识知之甚少，本文目的就是详细介绍PHP进行并发IO编程的各种尝试，深入浅出全面解析并发IO问题。
多进程/多线程同步阻塞
]]></description><category></category></item><item><title><![CDATA[RPC与netty]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/74923925</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/74923925</guid><author>Lockheed_Hong</author><pubDate>Mon, 10 Jul 2017 15:25:00 +0800</pubDate><description><![CDATA[关于RPC
你的题目是RPC框架，首先了解什么叫RPC，为什么要RPC，RPC是指远程过程调用，也就是说两台服务器A，B，一个应用部署在A服务器上，想要调用B服务器上应用提供的函数/方法，由于不在一个内存空间，不能直接调用，需要通过网络来表达调用的语义和传达调用的数据。


比如说，一个方法可能是这样定义的：
Employee getEmployeeByName(String
 ful]]></description><category></category></item><item><title><![CDATA[彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73550536</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73550536</guid><author>Lockheed_Hong</author><pubDate>Wed, 21 Jun 2017 16:36:27 +0800</pubDate><description><![CDATA[彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法 






本文系腾讯Bugly独家内容，转载请在文章开头显眼处注明作者和出处“腾讯Bugly(http://bugly.qq.com)”




导语


Http 缓存机制作为 web 性能优化的重要手段，对从事 Web 开发的小伙伴们来说是必须要掌握的知识，但最近我遇到了几个缓存头设置相关的题目，发现]]></description><category></category></item><item><title><![CDATA[不可小觑的Content-Length]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73549865</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73549865</guid><author>Lockheed_Hong</author><pubDate>Wed, 21 Jun 2017 15:45:46 +0800</pubDate><description><![CDATA[Content-Length首部告诉浏览器报文中实体主体的大小。这个大小是包含了内容编码的，比如对文件进行了gzip压缩，Content-Length就是压缩后的大小（这点对我们编写服务器非常重要）。除非使用了分块编码，否则Content-Length首部就是带有实体主体的报文必须使用的。使用Content-Length首部是为了能够检测出服务器崩溃而导致的报文截尾，并对共享持久连接的多个报文进行]]></description><category></category></item><item><title><![CDATA[linux进程监控和简单的重启]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73549837</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73549837</guid><author>Lockheed_Hong</author><pubDate>Wed, 21 Jun 2017 15:43:24 +0800</pubDate><description><![CDATA[现在很多应用场景都会需要使用守护进程直接运行代码，会有情况导致出现异常进程退出，那就很影响用户使用了，这里提供一个简单的linux进程监控和重启来保证进程正常运行。
脚本文件该脚本实现了一个检测进程是否存在，不存在的情况下重启进程并且记录日志。#! /bin/shproc_name="console/queue/gift.php"                    # 进程名
log_name=]]></description><category></category></item><item><title><![CDATA[关于生产环境服务器的登录安全问题]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73467217</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73467217</guid><author>Lockheed_Hong</author><pubDate>Mon, 19 Jun 2017 14:20:41 +0800</pubDate><description><![CDATA[引言：作为一个整天和服务器打交道的开发者，经常需要登录服务器。普通的开发服务器还好点，架设在内网，稳定性要求也没有那么高。但是生产服务器的安全性就非常重要了，那有没有办法既保证安全又不让登录那么麻烦的策略呢？


个人在实践过程中总结出了一个简单的登录账号管理体系，大致是一下这几部分：
一、传统密码的缺点
1、用习惯的容易记忆的密码被破解的难度很低，这个想必在生产服务器上都不会去做这种事]]></description><category></category></item><item><title><![CDATA[linux常用命令]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73466501</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73466501</guid><author>Lockheed_Hong</author><pubDate>Mon, 19 Jun 2017 13:39:25 +0800</pubDate><description><![CDATA[虽然系统运维在大公司是一个独立岗位，但作为一个服务端开发，了解服务器系统是很重要的事情，这能让开发者更全面的了解world of machine。而了解linux命令则是一个很重要的途径和工具。
系统信息
arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / D]]></description><category></category></item><item><title><![CDATA[emoji字符的存储与应用方案]]></title><link>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73332527</link><guid>https://blog.youkuaiyun.com/Lockheed_Hong/article/details/73332527</guid><author>Lockheed_Hong</author><pubDate>Fri, 16 Jun 2017 15:50:09 +0800</pubDate><description><![CDATA[现在应用大量的地方会使用到emoji表情，例如微信昵称，聊天内容，好友请求等等。如果还是使用ut8会出现乱码，因为UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节，而Mysql的utf8编码最多3个字节，utf8mb4则扩展到一个字符最多能有4字节，并且兼容utf8，唯一的缺点就是占用存储空间会比ut8大一点。



如果采用在代码内碰到emoji字符时进行编码处理，一]]></description><category></category></item></channel></rss>