<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[plgy_Y的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/plgy_Y</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; plgy_Y]]></copyright><item><title><![CDATA[使用protoc编译时出现Import “google/protobuf/any.proto“ was not found or had errors. 问题的解决方法]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/155774341</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/155774341</guid><author>plgy_Y</author><pubDate>Wed, 10 Dec 2025 14:03:24 +0800</pubDate><description><![CDATA[摘要 解决protoc编译时&quot;google/protobuf/any.proto&quot;找不到的问题：首先从GitHub克隆protobuf源码到本地目录，然后在protoc命令中添加两个-I参数：1) 指向protobuf源码中的src目录；2) 指向待编译proto文件的上层目录。例如：protoc proto/example.proto --go_out=. --go-grpc_out=. --zrpc_out=. -I=~/pb/protobuf/src -I=~/project。该方]]></description><category></category></item><item><title><![CDATA[【Kafka】Kafka 为什么那么快的 6 个原因！]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/132969920</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/132969920</guid><author>plgy_Y</author><pubDate>Mon, 18 Sep 2023 11:23:14 +0800</pubDate><description><![CDATA[partition 并行处理顺序写磁盘，充分利用磁盘特性利用了现代操作系统分页存储 Page Cache 来利用内存提高 I/O 效率采用了零拷贝技术Producer 生产的数据持久化到 broker，采用 mmap 文件映射，实现顺序的快速写入Customer 从 broker 读取数据，采用 sendfile，将磁盘文件读到 OS 内核缓冲区后，转到 NIO buffer进行网络发送，减少 CPU 消耗。]]></description><category></category></item><item><title><![CDATA[【ES】Too many dynamic script compilations within, max: [75/5m]； 问题处理]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/132916044</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/132916044</guid><author>plgy_Y</author><pubDate>Mon, 18 Sep 2023 10:46:56 +0800</pubDate><description><![CDATA[ElasticSearch5分钟内脚本编译的数量不能超过75个]]></description><category></category></item><item><title><![CDATA[k8s安装helm和kube-batch]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/116763803</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/116763803</guid><author>plgy_Y</author><pubDate>Thu, 13 May 2021 20:11:49 +0800</pubDate><description><![CDATA[安装helm
# https://github.com/helm/helm/releases 
wget https://get.helm.sh/helm-v3.5.4-linux-amd64.tar.gz

tart -zxvf helm-v3.5.4-linux-amd64.tar.gz
 
mv linux-amd64/helm /usr/local/bin/helm

helm version

kube-batch
mkdir go
在~/.bash_proflie中配置GOPATH
source]]></description><category></category></item><item><title><![CDATA[k8s argo工作流]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/116500839</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/116500839</guid><author>plgy_Y</author><pubDate>Thu, 13 May 2021 19:58:42 +0800</pubDate><description><![CDATA[argo简介
argo根据前置任务执行状态判断是否继续执行后续任务
apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
  name: coinflip-cron
spec:
  schedule: "* * * * *"
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  startingDeadlineSe]]></description><category></category></item><item><title><![CDATA[golang logrus日志框架配置标准输出和文件输出，文件按天切割]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/114635077</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/114635077</guid><author>plgy_Y</author><pubDate>Wed, 24 Mar 2021 20:59:23 +0800</pubDate><description><![CDATA[import (rotatelogs "github.com/lestrrat/go-file-rotatelogs"
	"io"
	"github.com/sirupsen/logrus"
	)


////代码示例
		logFilePath := fmt.Sprintf("%s/%s/", logFileBasePath, podName)
		fileStr := strings.Trim(logFilePath, " \r\n")
		var logPath string
		index := s]]></description><category></category></item><item><title><![CDATA[python3安装psutil报错]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/111186270</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/111186270</guid><author>plgy_Y</author><pubDate>Fri, 25 Dec 2020 21:19:01 +0800</pubDate><description><![CDATA[报错信息
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL]]></description><category></category></item><item><title><![CDATA[git常用alias]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/108142413</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/108142413</guid><author>plgy_Y</author><pubDate>Fri, 21 Aug 2020 11:37:49 +0800</pubDate><description><![CDATA[git config --global alias.st status
git config --global alias.co checkout
git config --global alias.cob checkout -b
git config --global alias.ci commit
git config --global alias.com commit
git config --global alias.comm comm
git config --global alias.br br]]></description><category></category></item><item><title><![CDATA[C C++ redis pipeline读写数据]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/107962576</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/107962576</guid><author>plgy_Y</author><pubDate>Wed, 12 Aug 2020 21:08:46 +0800</pubDate><description><![CDATA[pipeline （流水线）允许 Redis 客户端一次向 Redis 发送多个命令，避免了多条指令发送多次网络请求。影响处理速度。
在C，C++中，Hiredis 提供了redisAppendCommand()函数来实现流水线的命令发送方案
redisAppendCommand()会先将命令缓存起来，在调用redisGetReply()方法后一次性将命令发送给redis，并取得第一个命令的返回结果。
性能提升
在作者使用过程中，需要将原有匹配的数据scan出来，再发请求获取对应key的value，然后替换]]></description><category></category></item><item><title><![CDATA[Spring Cloud Gateway集成Sentinel，限流]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/100316177</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/100316177</guid><author>plgy_Y</author><pubDate>Fri, 06 Sep 2019 13:39:50 +0800</pubDate><description><![CDATA[导入依赖
启动dashboard
在gateway项目中添加JVM参数
触发客户端连接控制台
请求链路
API管理
实时监控]]></description><category></category></item><item><title><![CDATA[定时备份数据到另一台服务器]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/95632865</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/95632865</guid><author>plgy_Y</author><pubDate>Fri, 12 Jul 2019 17:23:19 +0800</pubDate><description><![CDATA[1、配置免密登录
ssh-copy-id  xxx@111.111.111.111
xxx用户名，111.111.111.111示例IP

2、编写备份拷贝到备份机脚本
#! /bin/sh
tarName="$(date +%Y%m%d)"
ssh  xxx@111.111.111.111 &lt;&lt; remotessh 
mkdir /home/xxxBacxxxkupTemp
mkdi...]]></description><category></category></item><item><title><![CDATA[JVM运行时内存区域]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/94237933</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/94237933</guid><author>plgy_Y</author><pubDate>Thu, 11 Jul 2019 23:07:11 +0800</pubDate><description><![CDATA[程序计数器（Program Counter Register）
程序计数器是一块较小的内存空间，它可以看做是当前线程所执行的字节码的行号指示器。
Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式实现，在任何一个时刻，CPU的某一核都只执行一条线程中的指令。为了保证线程切换后能恢复到正确的执行位置，每条线程都需要一个独立的程序计数器，互不影响。
如果线程正在执行的是一个Java方...]]></description><category></category></item><item><title><![CDATA[垃圾收集算法]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/95531836</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/95531836</guid><author>plgy_Y</author><pubDate>Thu, 11 Jul 2019 23:05:41 +0800</pubDate><description><![CDATA[标记-清除算法
如名字，分为“标记”和“清除”两个阶段：首先标记处所有需要回收的对象，在标记完成后统一回收所有被标记的对象。
不足

效率问题
空间问题 标记清除之后会产生大量不连续的内存碎片，空间碎片太多可能会导致以后咋程序运行过程中需要分配较大对象时，无法找到足够的连续内存而不得不提前出发另一侧垃圾收集动作。

复制算法
复制算法将可用内存按容量划分为大小相等的两块，每次只使用其中一块。当这一...]]></description><category></category></item><item><title><![CDATA[CMS和G1垃圾收集器]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/95496232</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/95496232</guid><author>plgy_Y</author><pubDate>Thu, 11 Jul 2019 22:38:00 +0800</pubDate><description><![CDATA[CMS
CMS（Concurrent Mark Sweep）收集器是一种以获取最短回收停顿时间为目标的收集器。
运作过程：

初始标记（CMS initial mark）
并发标记（CMS concurrent mark）
重新标记（CMS remark）
并发清除（CMS concurrent sweep）
初始标记和重新标记需要“Stop The World”。初始标记仅仅只是标记一下GC R...]]></description><category></category></item><item><title><![CDATA[redis实现高并发下的抢购/秒杀功能]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/90142334</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/90142334</guid><author>plgy_Y</author><pubDate>Sun, 12 May 2019 17:00:39 +0800</pubDate><description><![CDATA[这一次总结和分享用Redis实现分布式锁 与 实现任务队列 这两大强大的功能。先扯点个人观点，之前我看了一篇博文说博客园的文章大部分都是分享代码，博文里强调说分享思路比分享代码更重要（貌似大概是这个意思，若有误请谅解），但我觉得，分享思路固然重要，但有了思路，却没有实现的代码，那会让人觉得很浮夸的，在工作...]]></description><category></category></item><item><title><![CDATA[【Linux】kill -9 停不掉进程]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/89451372</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/89451372</guid><author>plgy_Y</author><pubDate>Mon, 22 Apr 2019 20:18:27 +0800</pubDate><description><![CDATA[遇到的问题：
HDFS 拷贝数据，起了FsShell进程，想停掉，kill了又重新起FsShell进程。
使用ps -ef | grep FSShell
显示信息是

列名：
UID       PID       PPID      C     STIME    TTY       TIME         CMD
UID      ：程序被该 UID 所拥有
PID      ：就是这个程序的...]]></description><category></category></item><item><title><![CDATA[【Linux】nohup后台运行脚本 终止脚本运行]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/89380909</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/89380909</guid><author>plgy_Y</author><pubDate>Thu, 18 Apr 2019 16:24:57 +0800</pubDate><description><![CDATA[command &amp;和nohup command区别
command &amp; 是后台运行 Ctrl + C后程序不停止运行，关闭shell会话后或者其他原因导致shell会话退出 程序停止运行
nohup command shell会话退出后，程序不停止运行，Ctrl+C程序停止运行
nohup后台运行脚本
nohup command &amp;
终止脚本运行

ps -aux | gr...]]></description><category></category></item><item><title><![CDATA[【Python】科学计数法转化为浮点型数据]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/88745336</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/88745336</guid><author>plgy_Y</author><pubDate>Fri, 22 Mar 2019 17:18:00 +0800</pubDate><description><![CDATA[def as_num(x):
    y = '{:.10f}'.format(x)  # .10f 保留10位小数
    return y

if __name__ == '__main__':
    str = '2.88657e-5'
    if ('E' in str or 'e' in str):
        x = as_num(float(str))
        pri...]]></description><category></category></item><item><title><![CDATA[【Linux】Shell执行Java jar传入参数并获取退出码]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/85319949</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/85319949</guid><author>plgy_Y</author><pubDate>Fri, 28 Dec 2018 12:01:56 +0800</pubDate><description><![CDATA[#!/bin/bash
result=0
if [ $# -eq 2 ];then
result=`java -jar test.jar $1 $2`
fi
if [ $# -eq 1 ];then
result=`java -jar test.jar $1`
fi

if [ $# -eq 0 ];then
echo &amp;amp;amp;quot;exec default&amp;amp;amp;quot;
java -jar test.jar
resul...]]></description><category></category></item><item><title><![CDATA[执行shell脚本报syntax error: unexpected end of file错误]]></title><link>https://blog.youkuaiyun.com/plgy_Y/article/details/83784310</link><guid>https://blog.youkuaiyun.com/plgy_Y/article/details/83784310</guid><author>plgy_Y</author><pubDate>Tue, 06 Nov 2018 11:31:38 +0800</pubDate><description><![CDATA[
原因:
我的脚本是在windows上创建并编辑的。
windows下的换行是\r\n
而linux下的换行只是\n
解决办法：


显示换行符

将\r\n替换为\n (这里我使用的是Notapad++的替换，快捷键为Ctrl + H)



...]]></description><category></category></item></channel></rss>