<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[myth_g的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/myth_g</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; myth_g]]></copyright><item><title><![CDATA[gateway集成阿里Sentinel后,控制台如何根据url动态限流]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/122911924</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/122911924</guid><author>myth_g</author><pubDate>Sun, 13 Feb 2022 18:01:43 +0800</pubDate><description><![CDATA[gateway网关集成Sentinel后,控制台默认限流是根据服务进行的,默认为资源名为ReactiveCompositeDiscoveryClient_服务名称,如下图:



所以限流都是根据整个服务进行的,那么如何像单机一样根据url分组限流呢;有两种方式:

1.通过初始化配置:


@Configuration
public class SentinelInitUrlConfig {

    @PostConstruct
    public void doInit() {
        lo]]></description><category></category></item><item><title><![CDATA[转移阵地到自建博客~]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/121424113</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/121424113</guid><author>myth_g</author><pubDate>Fri, 19 Nov 2021 15:38:06 +0800</pubDate><description><![CDATA[此后不更新csdn了,点我跳转~
]]></description><category></category></item><item><title><![CDATA[介绍下热部署神器-JRebel]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120991486</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120991486</guid><author>myth_g</author><pubDate>Wed, 27 Oct 2021 13:54:35 +0800</pubDate><description><![CDATA[奇怪了,发文字版总是被驳回...




]]></description><category></category></item><item><title><![CDATA[小团队小体量单体架构下利用Jenkins的构建部署]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120859661</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120859661</guid><author>myth_g</author><pubDate>Wed, 20 Oct 2021 10:01:11 +0800</pubDate><description><![CDATA[使用到的工具有中间件有Jenkins,Gitlab,Maven等...

由于小团队,并且业务系统相对访问量不大,所以需要易于管理好用的一套构建部署流程;以下是我做过的一套流程,仅供参考(以下案例为针对Java语言项目);



1.测试服务器:

测试中频繁的接口修改,前后端联调;平时可以在局域网中互联各自开发电脑联调,或者后端远程测试服务器联调;

所以针对于这类场景,使用本地脚本的方式直接上传部署测试服务器更加的灵活方便,具体流程如下:

1)本地进行构建打包

2)编写脚本,直接进行上传部署项目(T]]></description><category></category></item><item><title><![CDATA[SpringMVC+Junit 遇到找不到servlet相关bean问题]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120704674</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120704674</guid><author>myth_g</author><pubDate>Mon, 11 Oct 2021 15:40:57 +0800</pubDate><description><![CDATA[增加注解@WebAppConfiguration,执行在web环境运行;


@ActiveProfiles("test")
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath*:/spring/*.xml"})


]]></description><category></category></item><item><title><![CDATA[关于HttpServletRequest,记录日志引发的问题]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120571651</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120571651</guid><author>myth_g</author><pubDate>Thu, 30 Sep 2021 20:13:52 +0800</pubDate><description><![CDATA[前言:今天跟安卓同学闹了点小不愉快,他在测试安卓TV端的时候,突然发现接口报错于是问我.但是我看到其报错接口并未改动,并且运行公众号H5端接口正常,于是产生了分歧;

出问题原因:为了记录详细日志,配置了全局过滤器记录JSON信息,于是继承HttpServletRequestWrapper重写了一些逻辑,下面说明具体细节;

1.我直接将过滤器的chain.doFilter(request), response)方法中的request继承HttpServletRequestWrapper重写了逻辑:


p]]></description><category></category></item><item><title><![CDATA[神器Arthas!!!]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120351801</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120351801</guid><author>myth_g</author><pubDate>Fri, 17 Sep 2021 16:28:08 +0800</pubDate><description><![CDATA[直接起个标题,用起来~
]]></description><category></category></item><item><title><![CDATA[Linux 一些常用操作]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120327215</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120327215</guid><author>myth_g</author><pubDate>Thu, 16 Sep 2021 14:32:29 +0800</pubDate><description><![CDATA[一.设置账号(以张三为例):


#此时会自动创建出/home/zhangsan的家目录,如果没有则在命令中使用-m
useradd zhangsan


#此时会自定义指定家目录并生成目录
useradd -d /user/zhangsan -m zhangsan

以上两种情况会生成用户的同时,生成同名的用户组,如需生成时指定用户组,可以用以下命令,但是该用户组必须已创建存在;


useradd -g mygroup zhangsan

删除用户


#加上-r则一起删除用户家目录
userdel..]]></description><category></category></item><item><title><![CDATA[Linux下找到占用最高的文件夹或文件]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120204323</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120204323</guid><author>myth_g</author><pubDate>Thu, 09 Sep 2021 16:39:36 +0800</pubDate><description><![CDATA[1.查询磁盘占用情况


df -h

2.查看哪个目录占用空间大


du -s /* | sort -nr

3.查看当前目录下文件夹大小


du -h --max-depth=1

4.如果通过以上方法没有找到问题所在，那么可以使用 lsof | grep deleted 命令，看看是否删除掉的文件仍然被进程占用而没有进行实际删除.找到占用文件很大的进程，停止进程。之后重新启动.


...]]></description><category></category></item><item><title><![CDATA[MySQL之order by 数字或RAND函数(数据顺序随机)]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/120011046</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/120011046</guid><author>myth_g</author><pubDate>Tue, 31 Aug 2021 10:20:19 +0800</pubDate><description><![CDATA[1.后面加上数字


SELECT C1,C2,C3 FROM T ORDER BY 1

如上,意思是按照所查询的第几个字段进行排序;



2.后面加上RAND()


]]></description><category></category></item><item><title><![CDATA[MySQL中文转拼音相关函数]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/119907863</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/119907863</guid><author>myth_g</author><pubDate>Wed, 25 Aug 2021 11:46:24 +0800</pubDate><description><![CDATA[1.转为全拼

 新建数据库:




SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_base_pinyin
-- ----------------------------
DROP TABLE IF EXISTS `t_base_pinyin`;
CREATE TABLE `t_base_pinyin`  (
  `code_` int(25.]]></description><category></category></item><item><title><![CDATA[协程是什么,简单的说]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/119890370</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/119890370</guid><author>myth_g</author><pubDate>Tue, 24 Aug 2021 15:09:34 +0800</pubDate><description><![CDATA[协程底层也是一个线程池来维护执行,只是将原来的多线程执行方法书写方式,更加同步化;

将异步任务存储在用户态应用数据结构中,然后由语言来控制执行,并保存其各个的执行栈;

用少数的线程执行大量的异步任务,类似golang底层封装了io及网络等操作,碰到block及busy的操作,直接将其挂起执行其他协程任务;



与线程池的不同是,线程池只是复用线程,将任务存储在数据结构中,但是碰到io等操作只能将线程挂起,切换到其他线程,无法做到少数线程处理大量io等操作任务;
...]]></description><category></category></item><item><title><![CDATA[JVM实际内存占用超过Xmx的原因,设置Xmx的技巧]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/119855832</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/119855832</guid><author>myth_g</author><pubDate>Sun, 22 Aug 2021 18:22:08 +0800</pubDate><description><![CDATA[前言
不知道大家在开发过程中有没有遇到过类似的问题，明明通过JVM参数-Xmx4g设置了最大堆内存大小为4g，但是程序运行一段时间后发现占用的内存明显超过了8g，却并没有出现内存溢出等问题，那是什么东西占用了额外的内存空间呢？

一、背景
1.通过free -g查看服务器内存使用情况





2.通过ps查看java进程
项目启动命令为：


java -Xmx6g -Xms6g - -XX:+UseG1GC -jar /home/pgcp/pgcp-0.0.1-SNAPSHOT.jar





3..]]></description><category></category></item><item><title><![CDATA[关于GC的年轻代及老年代]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/119855744</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/119855744</guid><author>myth_g</author><pubDate>Sun, 22 Aug 2021 18:10:07 +0800</pubDate><description><![CDATA[以下摘自一段博客内容:

有许多现成的调优经验的介绍。Charlie Hunt写的《Java Performance》一书里有很详细的介绍。中文版就快出了，敬请关注。
其中涉及GC调优的部分在过往的JavaOne里也有session介绍过。请搜这个标题："Step-by-Step: Garbage Collection Tuning in the Java HotSpot™ Virtual Machine"

不过那种很具体的现成经验毕竟是别人在他们见过的环境里沉淀下来的，并不一定适用于所有情况。所以怎样的]]></description><category></category></item><item><title><![CDATA[线上一个字体工具引发的内存泄漏问题]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/119713358</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/119713358</guid><author>myth_g</author><pubDate>Sun, 15 Aug 2021 14:34:49 +0800</pubDate><description><![CDATA[这个是怎么发现的呢，虽然没有引发OOM，但是自从我接手这个项目以后，前期都是改bug，写新需求，最近疫情在家，并且新做的小程序等待审核的期间，发现了个线上问题；发现每隔一段时间，一般是一两周，线上的堆内存就逐渐增大，虽然很缓慢的增长，但是使用jmap -heap命令查看到老年代也是越来越大，以往的gc没有起作用，正常来说内存占用应该是从部署逐步上升到保持一个稳定的水平。

1.使用命令获取jvm内存dump：


jmap -dump:format=b,file=10339.hprof 10339



.]]></description><category></category></item><item><title><![CDATA[JAVA8之parallelStream()并行流的正确用法]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/118787482</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/118787482</guid><author>myth_g</author><pubDate>Fri, 16 Jul 2021 11:00:00 +0800</pubDate><description><![CDATA[1.因为是并行流,所以所涉及到的数据结构,需要使用线程安全的,比如
listByPage.parallelStream().forEach(str-&gt; {
           //使用线程安全的数据结构
           //ConcurrentHashMap
           //CopyOnWriteArrayList
           //等等进行操作
        });

2.默认优先用在CPU密集型计算中,这里有的人就说了,用在IO密集比如HTTP请求啊什么的这种耗时高的操]]></description><category></category></item><item><title><![CDATA[ELK继续分析V2EX(我自己搬运我自己)]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/118757675</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/118757675</guid><author>myth_g</author><pubDate>Thu, 15 Jul 2021 13:48:39 +0800</pubDate><description><![CDATA[1.目的:
是将v2ex.txt导入到ES中分析,通过kibana呈现;现在Elastic Stack有好多好用的工具,这次用到的是:
Filebeat=&gt;采集文本文件=&gt;Logstash=&gt;进行JSON转换=&gt;ES=&gt;存储=&gt;Kibana=&gt;图标呈现
2.拉取镜像:

这次根据官网使用最新版本7.6.2
3.创建文件及响应映射文件夹

4.快速编排单机模式:docker-compose.yml
version: '2'
services:
   es:
     ]]></description><category></category></item><item><title><![CDATA[MySQL之字段为null]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/118753244</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/118753244</guid><author>myth_g</author><pubDate>Thu, 15 Jul 2021 10:14:54 +0800</pubDate><description><![CDATA[这次在公司中改前人留下的代码,是一个已购课程的分页列表,结果出现了显示不全的问题;
涉及到的问题其实很简单,但是又是很容易发生的,记录一下:
1.我们都知道,MySQL建议我们在创建表字段的时候,默认值尽可能的使用 非null,一个好处是提升查询速度避免无法使用索引优化,另一个就是使用中容易产生不必要的问题;
2.当某一个字段,其中有的值为null时,如果我们使用了 != 这种查询条件时,由于null的特殊存在,它是没法参数 != 的计算的,无法返回 true还是false;所以是无法返回结果的,所以查询条]]></description><category></category></item><item><title><![CDATA[FastJson参数IgnoreNonFieldGetter引发的问题]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/118112485</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/118112485</guid><author>myth_g</author><pubDate>Tue, 22 Jun 2021 18:00:00 +0800</pubDate><description><![CDATA[先定义一个类:
 static class JsonTest1 {
        private String name2;

        public String getName() {
            return name2;
        }

        public void setName(String name) {
            this.name2 = name;
        }
    }

然后写个测试:
 static class JsonTes]]></description><category></category></item><item><title><![CDATA[Mybaits导致cpu占用高]]></title><link>https://blog.youkuaiyun.com/myth_g/article/details/117958300</link><guid>https://blog.youkuaiyun.com/myth_g/article/details/117958300</guid><author>myth_g</author><pubDate>Wed, 16 Jun 2021 14:59:29 +0800</pubDate><description><![CDATA[1.后台系统,线上cpu占用高,查看发现fullgc频繁;
2.经过MemoryAnalyzer分析,发现org.apache.ibatis.scripting.xmltags.DynamicContextContextMap和org.apache.ibatis.builder.SqlSourceBuilderContextMap和org.apache.ibatis.builder.SqlSourceBuilderContextMap和org.apache.ibatis.builder.SqlSourceB]]></description><category></category></item></channel></rss>