<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lufeeBlog的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lufeeBlog</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lufeeBlog]]></copyright><item><title><![CDATA[波波生活 - 技术支持]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/121440030</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/121440030</guid><author>lufeeBlog</author><pubDate>Sat, 20 Nov 2021 15:18:45 +0800</pubDate><description><![CDATA[王咏 - 专业ios开发者


]]></description><category></category></item><item><title><![CDATA[linux中root无法修改文件是因为加了i属性]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/108662232</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/108662232</guid><author>lufeeBlog</author><pubDate>Fri, 18 Sep 2020 11:34:10 +0800</pubDate><description><![CDATA[去除i属性：chattr -i /etc/sysctl.conf

添加i属性：chattr +i /etc/sysctl.conf


]]></description><category></category></item><item><title><![CDATA[虚拟机centOs7.X设置固定ip]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/107222823</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/107222823</guid><author>lufeeBlog</author><pubDate>Thu, 09 Jul 2020 10:46:02 +0800</pubDate><description><![CDATA[步骤1：确定自己的虚拟机网络处于nat模式





步骤2：点击菜单栏编辑-&gt;虚拟网络编辑器



步骤3：点击NAT设置



步骤4：点击确定之后设置虚拟机的网卡IP



步骤5：这样填就可以了



步骤6：打开虚拟机，编辑这个文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33





这样配置好重启服务：service network restart

然后ip addr看到自己地址改了，并且ping得通百度。


...]]></description><category></category></item><item><title><![CDATA[php对应java的AES/ECB/PKCS5Padding加密方法，通过bin2hex输出]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/107159899</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/107159899</guid><author>lufeeBlog</author><pubDate>Mon, 06 Jul 2020 15:22:43 +0800</pubDate><description><![CDATA[&lt;?php

namespace Common\Help;
class AesHelper
{
    /**
     * @param $key
     * @param $data
     * @return string
     * @author lf 2020/7/6
     */
    public static function encrypt($key, $data)
    {
        $size = mcrypt_get_block_size(MCRYPT_R.]]></description><category></category></item><item><title><![CDATA[docker容器内时区和宿主机时区不一致]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/106710899</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/106710899</guid><author>lufeeBlog</author><pubDate>Fri, 12 Jun 2020 10:39:46 +0800</pubDate><description><![CDATA[刚开始还以为是hyperf设置的问题，后来进入容器内执行date发现是容器内时区不对，后来上网查资料发现是容器启动的时候没有指定指定时区，所以默认是慢了八个小时；



退出容器，然后执行


docker cp /etc/localtime 容器id:/etc/localtime

然后再docker restart 容器id

即可生效
...]]></description><category></category></item><item><title><![CDATA[docker安装elasticsearch遇到的坑]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/106690742</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/106690742</guid><author>lufeeBlog</author><pubDate>Thu, 11 Jun 2020 16:00:37 +0800</pubDate><description><![CDATA[1.


.docker run -d -p 9200:9200 -p 9300:9300 -e --name="my-elasticsearch" elasticsearch:6.4.0

这种方式直接运行的es，如果像我这样的穷逼内存只有1g的机器，因为es默认是2g的启动内存，服务器就会直接阻塞io卡死，所以要指定内存：


docker run -d -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --name="my-el]]></description><category></category></item><item><title><![CDATA[docker的网络模式]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/106640403</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/106640403</guid><author>lufeeBlog</author><pubDate>Tue, 09 Jun 2020 14:21:22 +0800</pubDate><description><![CDATA[docker网络模式：

host模式(--net=host)    

container模式       

none模式(--net=none)        

bridge模式(--net=bridge)




]]></description><category></category></item><item><title><![CDATA[用hyper实现rpc服务（基于consul）]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/106213828</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/106213828</guid><author>lufeeBlog</author><pubDate>Tue, 19 May 2020 14:27:12 +0800</pubDate><description><![CDATA[其实直接是照搬了官网的demo，然后用的是docker安装consul的集群，发布服务的时候踩到了一个坑，那就是没安装hyperf/service-governance导致服务无法发布，后来安装之后服务发布到consul集群上了，如图：



接着又踩到一个坑，发现service checks有一个问题，反正大概意思说9504端口没有打开。

因为我的项目也是在docker上运行的，所以在防火墙上就打开了9504端口。

#添加你要的端口

firewall-cmd --zone=public --add.]]></description><category></category></item><item><title><![CDATA[利用docker快速搭建consul集群网]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/106130924</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/106130924</guid><author>lufeeBlog</author><pubDate>Thu, 14 May 2020 23:30:56 +0800</pubDate><description><![CDATA[如果不用虚拟机，一台物理机只能搭建一个server或者client，利用docker，可以快速搭建一个consul集群。

1.docker拉群consul的镜像

#docker pull consul

2.用一个文件夹用来后面映射到docker中

#mkdir -p /data/consul

3.使用docker来搭建server

#docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE=']]></description><category></category></item><item><title><![CDATA[阿里云centos解决设置了安全组端口还是没有打开的问题]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/106130851</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/106130851</guid><author>lufeeBlog</author><pubDate>Thu, 14 May 2020 23:00:43 +0800</pubDate><description><![CDATA[#添加你要的端口

firewall-cmd --zone=public --add-port=8800/tcp --permanent

//重载

firewall-cmd --reload

//查看端口有没有生效

firewall-cmd --zone=public --list-ports
]]></description><category></category></item><item><title><![CDATA[docker上传镜像的步骤]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/106024238</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/106024238</guid><author>lufeeBlog</author><pubDate>Sat, 09 May 2020 17:37:42 +0800</pubDate><description><![CDATA[1.我们可以使用 docker build 来创建一个新的镜像。为此，首先需要创建一个 Dockerfile，包含一些如何创建镜像的指令，新建一个目录和一个 Dockerfile



2.Dockerfile 中每一条指令都创建镜像的一层，例如：



Dockerfile 基本的语法是：使用 # 来注释：FROM指令告诉 Docker 使用哪个镜像作为基础，接着是维护者的信息,RUN开头的指令会在创建中运行，比如安装一个软件包。

3.然后执行docker image build -t="ou...]]></description><category></category></item><item><title><![CDATA[tcp的三个函数，listen，connect，accept]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/105654526</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/105654526</guid><author>lufeeBlog</author><pubDate>Tue, 21 Apr 2020 11:42:28 +0800</pubDate><description><![CDATA[connect：客服端告诉服务端我要进行tcp链接第一个函数，成果返回1，失败返回0。

listen：非阻塞函数，将套接字与套接字的序列长度告诉系统内核。

accept：从处于established 状态的队列中取出完成的连接。

流程：

1.服务器调用listen进行监听，客户端调用connect来发送syn报文。

2.连接建立后，往listen队列中添加一个成功的连接，直到队列的最大长...]]></description><category></category></item><item><title><![CDATA[堆和栈的区别]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/105644273</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/105644273</guid><author>lufeeBlog</author><pubDate>Mon, 20 Apr 2020 20:55:08 +0800</pubDate><description><![CDATA[1.空间分配：

栈：由操作系统自动分配操作，存放函数的参数值，局部变量的值等，其操作方式类似于数据结构的栈。

堆：一般由程序员分配释放，如果程序员不释放，则程序结束时可能由GC机制回收，操作方式类似于链表。

2.缓存分类的区别：

栈：一级缓存，需要被调用的时候处于存储空间中，调用完毕后立即释放。

堆：二级缓存，生命周期要根据垃圾回收机制周期来决定。

3.数据结构区别：

栈：一种先进后...]]></description><category></category></item><item><title><![CDATA[php中类的self和static的区别以及self和$this->的区别]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/105632437</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/105632437</guid><author>lufeeBlog</author><pubDate>Mon, 20 Apr 2020 12:43:46 +0800</pubDate><description><![CDATA[1.self和static的区别

self和static都可以表示指向当前类，但static是php5.3版本之后才有的，强调的是延迟静态绑定，怎么实现延迟静态绑定呢？请看下面代码。


&lt;?php
class a {
    public static function aa () {
        self::bb();
    }
    protected static func...]]></description><category></category></item><item><title><![CDATA[php实现二叉树的创建以及前序/中序/后序遍历]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/105632407</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/105632407</guid><author>lufeeBlog</author><pubDate>Mon, 20 Apr 2020 12:29:11 +0800</pubDate><description><![CDATA[&lt;?php 
class TreeNode
{
    public $val = null;
    public $left = null;
    public $right = null;

    function __construct($value)
    {
        $this-&gt;val = $value;
    }
}

class BinaryTree...]]></description><category></category></item><item><title><![CDATA[linux下安装pip]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/78874749</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/78874749</guid><author>lufeeBlog</author><pubDate>Fri, 22 Dec 2017 16:37:52 +0800</pubDate><description><![CDATA[下载文件 wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate 
执行安装 python get-pip.py 


前提已安装py]]></description><category></category></item><item><title><![CDATA[网易笔试题--跳石板]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/78415559</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/78415559</guid><author>lufeeBlog</author><pubDate>Wed, 01 Nov 2017 16:30:43 +0800</pubDate><description><![CDATA[小易来到了一条石板路前，每块石板上从1挨着编号为：1、2、3.......
 这条石板路要根据特殊的规则才能前进：对于小易当前所在的编号为K的 石板，小易单次只能往前跳K的一个约数(不含1和K)步，即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板，他想跳到编号恰好为M的石板去，小易想知道最少需要跳跃几次可以到达。
 例如：
 N = 4，M = 24：
 4]]></description><category></category></item><item><title><![CDATA[美图笔试题；浏览器访问XXX.com的时候发生了什么过程]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/78219345</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/78219345</guid><author>lufeeBlog</author><pubDate>Thu, 12 Oct 2017 20:26:59 +0800</pubDate><description><![CDATA[1.当一个浏览器是第一次访问一个网站的时候，它首先会去找本地的host文件，看一下能不能找到相对应的ip，如果有，大吉大利晚上吃鸡，如果没有，也不用担心，因为它还会向我们本地的dns查找对应的ip，查找不了就会往更高级的dns查找，实在找不了说明域名解析出错了。
2.当它获取到IP以后，浏览器就很高兴得与服务端建立tcp连接了。
在TCP协议中，建立TCP需要与服务器握手三次，你先告诉服务器你]]></description><category></category></item><item><title><![CDATA[连续最大和]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/78022083</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/78022083</guid><author>lufeeBlog</author><pubDate>Mon, 18 Sep 2017 18:09:13 +0800</pubDate><description><![CDATA[题目描述

一个数组有 N 个元素，求连续子数组的最大和。 例如：[-1,2,1]，和最大的连续子数组为[2,1]，其和为 3


解题思路：
看起来这道题挺复杂的，比如最大和中间有个负数怎么办？怎么判断中间有个负数呢？
其实不用判断，将所有数累加在一起，每次累加的时候记录本次累加值，跟上一次比较取最大者，
当遇到本次累加记录小于0的时候，发现对以后的序列有没用了，于是重置0。
]]></description><category></category></item><item><title><![CDATA[暗黑的字符串]]></title><link>https://blog.youkuaiyun.com/lufeeBlog/article/details/78015958</link><guid>https://blog.youkuaiyun.com/lufeeBlog/article/details/78015958</guid><author>lufeeBlog</author><pubDate>Mon, 18 Sep 2017 09:52:22 +0800</pubDate><description><![CDATA[题目描述

一个只包含'A'、'B'和'C'的字符串，如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个，那么这个字符串就是纯净的，否则这个字符串就是暗黑的。例如：
BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个，所以是纯净的字符串
AABBCCAABB 不存在一个长度为3的连续子串包含'A','B','C',所以是暗黑的字符串
你的任]]></description><category></category></item></channel></rss>