<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HelloKitty520123的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HelloKitty520123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HelloKitty520123]]></copyright><item><title><![CDATA[jvm类的加载、连接及初始化]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/113125390</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/113125390</guid><author>HelloKitty520123</author><pubDate>Mon, 25 Jan 2021 17:26:40 +0800</pubDate><description><![CDATA[读懂jvm崩溃日志，并进行相关参数的调整，解决线上问题。



jdk自带命令工具：jconsole、jvisualvm。



类加载： //可插入一张图

在java代码中，

类型的加载（将已经存在的class的字节码文件从磁盘加载到内存中，即查找并加载类的二进制数据）、

连接（将类与类之间的调用关系处理好，并对字节码文件进行校验）、

验证：确保被加载的类的正确性
	准备：为类的静态变量static分配内存，并将其初始化为默认值（整型0，布尔型false、引用默认值null）
	解析：把类中的..]]></description><category></category></item><item><title><![CDATA[Java zlib 解压缩 json 字节数组]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/112992419</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/112992419</guid><author>HelloKitty520123</author><pubDate>Fri, 22 Jan 2021 17:35:55 +0800</pubDate><description><![CDATA[本demo实现了：

1.将字符串压缩，转为字节流。

2. 定义对象，将字节流存入对象中。

2. 使用Gson，将对象转为json字符串。

3. 使用Gson将字符串转为对象。

4. 获取对象中的字节流，并进行解压，得到原始字符串。

备注：

主要是实际业务中，传输协议中需要兼容多种压缩算法，故不能对json串进行整体压缩，需要将压缩类型单独定义，再使用单独的key传输压缩后的字节流。


HelloJsonObj：


public class HelloJsonObj {
    Strin.]]></description><category></category></item><item><title><![CDATA[mysql读写分离]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/110878819</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/110878819</guid><author>HelloKitty520123</author><pubDate>Tue, 08 Dec 2020 18:08:03 +0800</pubDate><description><![CDATA[mysql读写分离问题：



今天遇到mysql读写分离导致的业务问题。

insert后，立刻关联该表进行查询，查不到数据，导致业务异常。

解决方案：

1. 将该类业务insert与select控制在一个事务中。

2. 写多读少的业务直接连主库，不使用读写分离地址。

3. select有强一致需求的sql使用hint语句，强制转发请求到主实例上执行。
...]]></description><category></category></item><item><title><![CDATA[2020-11-11]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/109612926</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/109612926</guid><author>HelloKitty520123</author><pubDate>Wed, 11 Nov 2020 10:02:34 +0800</pubDate><description><![CDATA[Flink状态存储：

MemoryStateBackend

FsStateBackend

RockDBStateBackend
]]></description><category></category></item><item><title><![CDATA[redis分布式锁]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/109075198</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/109075198</guid><author>HelloKitty520123</author><pubDate>Wed, 14 Oct 2020 15:35:54 +0800</pubDate><description><![CDATA[public String set(String key, String value, String nxxx, String expx, int time) {
        this.checkIsInMultiOrPipeline();
        this.client.set(key, value, nxxx, expx, time);
        return this.client.getStatusCodeReply();
    }



NX是不存在时才set...]]></description><category></category></item><item><title><![CDATA[ES节点类型及索引生成过程]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108972471</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108972471</guid><author>HelloKitty520123</author><pubDate>Wed, 14 Oct 2020 15:33:41 +0800</pubDate><description><![CDATA[1. ES节点类型： master 、data、ingest、协调节点、机器学习

2. index buffer ，每秒生成一个segment即可被搜索到，所以是近实时的搜索引擎。

transaction log 落盘。

segments merge合并。

30分钟一次flush操作，将segment刷入磁盘。
...]]></description><category></category></item><item><title><![CDATA[Spring注解  @Async(“asyncExecutor“)]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108618803</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108618803</guid><author>HelloKitty520123</author><pubDate>Wed, 16 Sep 2020 11:28:38 +0800</pubDate><description><![CDATA[import org.springframework.scheduling.annotation.Async;


/**
 * Annotation that marks a method as a candidate for &lt;i&gt;asynchronous&lt;/i&gt; execution.
 * Can also be used at the type level, in which case all of the type's methods are
 * considered .]]></description><category></category></item><item><title><![CDATA[网关限流器的底层算法]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108618599</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108618599</guid><author>HelloKitty520123</author><pubDate>Wed, 16 Sep 2020 11:22:33 +0800</pubDate><description><![CDATA[漏斗算法



令牌桶算法


]]></description><category></category></item><item><title><![CDATA[IEC 61850 GOOSE]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108618530</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/108618530</guid><author>HelloKitty520123</author><pubDate>Wed, 16 Sep 2020 11:20:31 +0800</pubDate><description><![CDATA[IEC 61850 GOOSE的相关学习
]]></description><category></category></item><item><title><![CDATA[Linux-wc的使用]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104895363</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104895363</guid><author>HelloKitty520123</author><pubDate>Mon, 16 Mar 2020 11:30:32 +0800</pubDate><description><![CDATA[grep '开始发送邮件:' info*.log | grep '03-14' | wc -l

//以上可以查看3月14号调用了多少次邮件接口



linux 自带有 wc 工具, 可以方便的统计文件中文本的行数

具体通过wc --help 可以查看。

wc -l filename 就是查看文件里有多少行

wc -w filename 看文件里有多少个word。

wc -L file...]]></description><category></category></item><item><title><![CDATA[excel浏览器直接下载]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104766649</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104766649</guid><author>HelloKitty520123</author><pubDate>Tue, 10 Mar 2020 08:39:40 +0800</pubDate><description><![CDATA[//返回给浏览器自动下载
    @GetMapping("/download")
    public void download(HttpServletResponse response) {
        List&lt;Demo&gt; list=  new ArrayList&lt;&gt;();

        Demo d1 = new Demo("z3", 22);
...]]></description><category></category></item><item><title><![CDATA[2020-03-05]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104671311</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104671311</guid><author>HelloKitty520123</author><pubDate>Thu, 05 Mar 2020 11:35:41 +0800</pubDate><description><![CDATA[mysql binlog 与 mysql dump

WireShark抓包工具使用

字符集 UTF-8 ASCII GBK Unicode

left join 、inner join、right join区别

concat 、 group concat区别

count（*）与count(某字段)的区别

ARP协议的理解

TCP Dump命令使用

Netty保存上下文的信息、粘包分包...]]></description><category></category></item><item><title><![CDATA[redis存储树结构数据]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104634827</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104634827</guid><author>HelloKitty520123</author><pubDate>Tue, 03 Mar 2020 16:11:13 +0800</pubDate><description><![CDATA[树形结构数据的存储：

1. parent Id

2. 竖线分割

3. redis存储树形结构，存在同步风险导致数据不一致

4. 以空间换时间，增加一张关联表

5. 左右值的二叉树实现，可快速查询指定节点的下级节点
...]]></description><category></category></item><item><title><![CDATA[HTTP 与 HTTPS]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104634725</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104634725</guid><author>HelloKitty520123</author><pubDate>Tue, 03 Mar 2020 16:05:52 +0800</pubDate><description><![CDATA[HTTP 80

HTTPS 443
]]></description><category></category></item><item><title><![CDATA[Group concat 与 concat]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104634715</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104634715</guid><author>HelloKitty520123</author><pubDate>Tue, 03 Mar 2020 16:05:22 +0800</pubDate><description><![CDATA[Group concat 与 concat
]]></description><category></category></item><item><title><![CDATA[UTF-8 、GBK、ASCII]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104498813</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104498813</guid><author>HelloKitty520123</author><pubDate>Tue, 25 Feb 2020 15:48:15 +0800</pubDate><description><![CDATA[UTF-8 、GBK、ASCII之间的渊源
]]></description><category></category></item><item><title><![CDATA[Netty相关]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104498739</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104498739</guid><author>HelloKitty520123</author><pubDate>Tue, 25 Feb 2020 15:45:56 +0800</pubDate><description><![CDATA[最近开发过程中遇到很多netty相关的问题

1. 粘包 拆包



2. 读写超时的控制



3. 异常重连



4. 自动更新bind的Ip及端口，无需重启
]]></description><category></category></item><item><title><![CDATA[RoHs认证]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104388052</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104388052</guid><author>HelloKitty520123</author><pubDate>Wed, 19 Feb 2020 10:00:01 +0800</pubDate><description><![CDATA[“CE”标志是一种安全认证标志，被视为制造商打开并进入欧洲市场的护照。CE代表欧洲统一（CONFORMITE EUROPEENNE）。凡是贴有“CE”标志的产品就可在欧盟各成员国内销售，无须符合每个成员国的要求，从而实现了商品在欧盟成员国范围内的自由流通。


RoHS是由欧盟立法制定的一项强制性标准，它的全称是《关于限制在电子电器设备中使用某些有害成分的指令》(Restriction of Ha...]]></description><category></category></item><item><title><![CDATA[项目管理基本术语]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104354761</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104354761</guid><author>HelloKitty520123</author><pubDate>Mon, 17 Feb 2020 11:14:43 +0800</pubDate><description><![CDATA[1. 投入人数（人月）

人月是工作量的计量单位，是项目所有参 与者工作时长的累计，是最为方便计算成本的数据。是项目管理中常用的概念。

如一个项目前期投入3个人工作2个月，中间2人工作0.5月，后期1人 （0.33兼职）工作3个月，那么工作量的计算就是：3人*2月+2人*0.5月+0.33*3月＝8人月。



2. 10人月的工作量，10人工作1个月可以完成吗？

人月是项目所有参与者工作...]]></description><category></category></item><item><title><![CDATA[java注解系列]]></title><link>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104352571</link><guid>https://blog.youkuaiyun.com/HelloKitty520123/article/details/104352571</guid><author>HelloKitty520123</author><pubDate>Mon, 17 Feb 2020 08:25:56 +0800</pubDate><description><![CDATA[1.@PostConstruct （import javax.annotation.PostConstruct）



2.@PreDestroy（import javax.annotation.PreDestroy）
]]></description><category></category></item></channel></rss>