<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[4927525的博客]]></title><description><![CDATA[4927525]]></description><link>https://blog.youkuaiyun.com/hzbskak</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hzbskak]]></copyright><item><title><![CDATA[安装GRPC-GATEWAY时遇到google/protobuf/descriptor.proto: File not found.]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/122488916</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/122488916</guid><author>hzbskak</author><pubDate>Fri, 14 Jan 2022 10:33:29 +0800</pubDate><description><![CDATA[将 gRPC-Gateway 注释添加到现有的 proto 文件
官方文档： https://grpc-ecosystem.github.io/grpc-gateway/docs/tutorials/adding_annotations/
根据官方文档在安装gRPC的时候，遇到这个错误
D:\go project\go_grpc\pb&gt;protoc --go_out . --go_opt paths=source_relative --go-grpc_out . --go-grpc_opt paths]]></description><category></category></item><item><title><![CDATA[docker 集群中 nginx 配置 php 需要注意的地方]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/122034606</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/122034606</guid><author>hzbskak</author><pubDate>Mon, 20 Dec 2021 09:35:11 +0800</pubDate><description><![CDATA[序
最近docker部署集群的时候遇到了一个问题。于是就踩坑了…

问题复现
那就是php和nginx不在同一个容器，却要通过nginx配置的server_name和listen来访问php项目。
之前在本地集成环境部署的时候没有考虑过这个问题，是因为只要nginx的root根目录和php的root根目录指向同一个目录，这样把项目文件放到这个目录下就可同时访问，也就不存在说是php来访问还是nginx来访问的说法。
但是在集群中也就需要考虑这个问题了。
思路
静态文件需要在 nginx 容器内，php代码放]]></description><category></category></item><item><title><![CDATA[docker swarm 集群搭建与服务更新]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/121976448</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/121976448</guid><author>hzbskak</author><pubDate>Thu, 16 Dec 2021 15:45:22 +0800</pubDate><description><![CDATA[title: "docker swarm 搭建与服务更新"

date: 2021-12-15T17:54:53+08:00

Description: ""

Tags: ["docker", "swarm", "docker-compose"]

Categories: ["docker"]

DisableComments: false

序
研究了好久的docker集群部署终于是在本地服务器跑通了。于是趁着热乎赶紧码下来。

1.&nbsp;创建集群
docker swarm init --adve]]></description><category></category></item><item><title><![CDATA[docker实战部署项目（Dockerfile、docker-compose、线上项目不停机更新）]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/121539727</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/121539727</guid><author>hzbskak</author><pubDate>Thu, 25 Nov 2021 16:00:12 +0800</pubDate><description><![CDATA[还不会docker的小伙伴可以跳转到这个地址
https://blog.youkuaiyun.com/hzbskak/article/details/118367706

步骤：

编写项目微服务
dockerfile构建镜像
docker-compose.yaml编排项目
丢到服务器 docker-compose up

编写项目微服务
这是前提工作，必须确保项目是可以运行的。
创建网络
docker network create hc-net
1140dab39575b6b211319554c88bebf0d82.]]></description><category></category></item><item><title><![CDATA[Dockerfile 文件: docker build制作镜像时,出现pecl not found]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/121501427</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/121501427</guid><author>hzbskak</author><pubDate>Tue, 23 Nov 2021 20:09:21 +0800</pubDate><description><![CDATA[问题复现：
官方给出的扩展安装地址https://github.com/hyperf/hyperf-docker
RUN apk add --no-cache librdkafka-dev \
&amp;&amp; pecl install rdkafka \
&amp;&amp; echo "extension=rdkafka.so" &gt; /etc/php7/conf.d/rdkafka.ini

以上代码加入到Dockerfile中，重新build会报错
/bin/sh: pecl: not fo]]></description><category></category></item><item><title><![CDATA[精心整理的MYSQL面试题]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/120852285</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/120852285</guid><author>hzbskak</author><pubDate>Tue, 19 Oct 2021 18:55:34 +0800</pubDate><description><![CDATA[1. MySQL 索引使用有哪些注意事项呢？
索引哪些情况下会失效


查询条件包含or 会导致索引失效


组合索引中，查询时要按照最左原则进行where条件判断


like中 "%asdg"会导致索引失效


对索引进行函数操作或加减会导致索引失效


*索引中使用!= 或者 not in 会失效


*隐式转换也会失效 比如字段是int 却用where age=‘1’


不适用的场景


数据量少的情况下不建议用索引


离散低的不建议用索引如 sex 男女



频繁更新的字段不建议加索引


]]></description><category></category></item><item><title><![CDATA[精心整理的REDIS面试题]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/120852279</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/120852279</guid><author>hzbskak</author><pubDate>Tue, 19 Oct 2021 18:55:04 +0800</pubDate><description><![CDATA[1Redis和Memcached相比，有哪些优势？

redis支持 string list set hash zset，memcached只支持string
redis支持数据持久化，可以把内存中的数据持久化到硬盘上，memcached不支持，只能存到内存中，重启就没有数据了。
redis使用的是单线程的多路IO复用机制

为什么用redis？
因为传统的关系型数据库已经不适用于所用的场景了，比如秒杀时的库存扣减，APP首页的访问流量高峰。很容易把数据库搞崩，所以就需要用到缓存中间件。目前市面上常用的中间]]></description><category></category></item><item><title><![CDATA[精心整理的NGINX面试题]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/120852271</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/120852271</guid><author>hzbskak</author><pubDate>Tue, 19 Oct 2021 18:54:30 +0800</pubDate><description><![CDATA[为什么要用Nginx？
因为跨平台，配置简单，支持高并发，耗费内存少。
为什么Nginx性能这么高？
因为nginx是异步非阻塞事件处理机制：运用了epoll模型，提供了一个队列，排队解决
Nginx怎么处理请求的？
nginx接受一个请求后，首先由listen和server_name 匹配server模块，在匹配的server模块里location，location就是实际地址
什么是正向代理和反向代理？
正向代理：客户端向代理服务器发送一个请求并指定目标，然后代理服务器向目标服务器转交请求并将获得的内容]]></description><category></category></item><item><title><![CDATA[精心整理的PHP面试题]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/120852249</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/120852249</guid><author>hzbskak</author><pubDate>Tue, 19 Oct 2021 18:52:44 +0800</pubDate><description><![CDATA[列举一些 PHP 中的设计模式？


单例模式：保证在整个应用程序的生命周期中，单例类的实例只存在一个


工厂模式：定义一个创建对象的接口，让子类去实例化具体类。


观察者模式 发布/订阅模式：当一个对象状态发生变化时，依赖它的对象全部会收到通知，并自动更新。


适配器模式：将一个类的接口转换成客户希望的接口，使得原本不兼容的接口可以兼容


依赖注入模式：是ioc的一种实现方式。用来减少程序中的耦合


简述一下 PHP 垃圾回收机制（GC）
php使用了引用计数，同时使用根缓存区机制，当php发现]]></description><category></category></item><item><title><![CDATA[数据结构与算法基础ppt]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/120342932</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/120342932</guid><author>hzbskak</author><pubDate>Fri, 17 Sep 2021 09:56:39 +0800</pubDate><description><![CDATA[B站学习地址
9.13开始
线性表
2.1线性表的定义和特点  P10

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bkl8KSdP-1631843679228)(https://cdn.jsdelivr.net/gh/4927525/images@master/20210914/image.6ijei5adnt80.png)]
线性表是具有相同特性的数据元素的一个有限序列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XHyr9Lpr-1]]></description><category></category></item><item><title><![CDATA[后端分层架构开发规范]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/119043312</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/119043312</guid><author>hzbskak</author><pubDate>Fri, 13 Aug 2021 15:37:23 +0800</pubDate><description><![CDATA[info.php
&lt;?php
本规范由璩雷初步制定，Server端架构组一起优化完善。大家有建议或者意见请与架构组讨论通过后再统一写入规范执行。
‘’‘规范不一定是最好最正确，但是大家是一个团队，统一更重要，所以请大家务必执行，按照规范执行编码。’’’


protected下分层结构和说明：
├── controllers 控制器, 调用Business层、Service层实现组合业务逻辑，禁止调用Model层。接收客户端参数，组装数据输出给客户端。
│   ├── doctor
│   ├── h]]></description><category></category></item><item><title><![CDATA[阿里云oss上传]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/118788785</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/118788785</guid><author>hzbskak</author><pubDate>Fri, 16 Jul 2021 11:39:10 +0800</pubDate><description><![CDATA[# 首先执行
composer require hyperf/filesystem
# 使用阿里云 OSS 适配器时执行
composer require xxtime/flysystem-aliyun-oss
安装完成后，执行
php bin/hyperf.php vendor:publish hyperf/filesystem

&lt;?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     h]]></description><category></category></item><item><title><![CDATA[docker安装rabbitmq]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/118720396</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/118720396</guid><author>hzbskak</author><pubDate>Wed, 14 Jul 2021 09:42:57 +0800</pubDate><description><![CDATA[# 创建容器
docker run -itd --name rabbitmq --net mynet  -p 5672:5672 -p 15672:15672 -v D:\docker\server\rabbitmq\data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=/ rabbitmq


# 启动
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_ma]]></description><category></category></item><item><title><![CDATA[hyper启动进程数量设置]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/118570407</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/118570407</guid><author>hzbskak</author><pubDate>Thu, 08 Jul 2021 11:39:55 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[tp记录后台操作日志]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/118539429</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/118539429</guid><author>hzbskak</author><pubDate>Wed, 07 Jul 2021 09:16:50 +0800</pubDate><description><![CDATA[序

最近leader让我优化一下之前后台系统的日志操作记录，于是自己写了一个

问题复现
旧的实现是在写入数据库后同步新增操作日志的，就好像下面这样。
# 修改数据库
Db::name('la_public_lang')-&gt;where('id',$postData['id'])-&gt;update($data);
# 同步写入日志
$this-&gt;operateLog($this-&gt;get_type(),'公共语
言','la_public_lang',$postData['id'],$]]></description><category></category></item><item><title><![CDATA[Docker最新超详细版教程通俗易懂--笔记2021年11月23日更新compose]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/118367706</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/118367706</guid><author>hzbskak</author><pubDate>Wed, 30 Jun 2021 19:26:22 +0800</pubDate><description><![CDATA[Docker安装
使用官方安装脚本自动安装
安装命令如下：
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun

也可以使用国内 daocloud 一键安装命令：
curl -sSL https://get.daocloud.io/docker | sh

手动安装
卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序，请卸载它们以及相关的依赖项。
yum remove]]></description><category></category></item><item><title><![CDATA[php调用接口时将请求和响应信息写入日志表中]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/118081298</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/118081298</guid><author>hzbskak</author><pubDate>Mon, 21 Jun 2021 10:35:35 +0800</pubDate><description><![CDATA[直接上代码

	/**
     * 发送请求 中间处理
     * @param string $name       方法名/动作类型
     * @param string $method     请求方法
     * @param string $data        请求/响应数据
     * @param array $edit_log    需要修改的日志数据
     * @param int $log_id        日志ID
     * @param int $is_ad]]></description><category></category></item><item><title><![CDATA[php多线程请求post]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/118080816</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/118080816</guid><author>hzbskak</author><pubDate>Mon, 21 Jun 2021 10:11:00 +0800</pubDate><description><![CDATA[多线程代码
/**
     * 多线程请求post
     * @param string $name 接口名称
     * @param array $data_string 数据
     * @param int $timeout 超时时间
     * @param array $header 头信息
     * @return array
     */
    private static function curl_http_post($name, $array, $timeout =]]></description><category></category></item><item><title><![CDATA[laravel+gatewayworker(workerman)+vue实现用户聊天功能]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/117752958</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/117752958</guid><author>hzbskak</author><pubDate>Wed, 09 Jun 2021 19:52:14 +0800</pubDate><description><![CDATA[git地址：https://gitee.com/hzbskak/laravel_worker
环境 PHP 7.4.19、Laravel Framework 5.8.38、mysql  Ver 14.14 Distrib 5.7.33

下载laravel
composer create-project --prefer-dist laravel/laravel laravel_worker "5.8.*"

下载gatewayworker
https://www.workerman.net/downlo.]]></description><category></category></item><item><title><![CDATA[tp6导出excel，可指定字段]]></title><link>https://blog.youkuaiyun.com/hzbskak/article/details/117528046</link><guid>https://blog.youkuaiyun.com/hzbskak/article/details/117528046</guid><author>hzbskak</author><pubDate>Thu, 03 Jun 2021 16:46:35 +0800</pubDate><description><![CDATA[项目中我用的是tp6版本。
先引入composer
composer require phpoffice/phpspreadsheet

直接上代码
&lt;?php

/*
 * author hzbskak
 * email  hzbskak@gmail.com
 * date   2021/6/3
 */

namespace demo\service;

use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadshee]]></description><category></category></item></channel></rss>