<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Code_Flyer的博客]]></title><description><![CDATA[当迈出了第一步，也就离成功不远了]]></description><link>https://blog.youkuaiyun.com/Code_Flyer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Code_Flyer]]></copyright><item><title><![CDATA[spring 事务源码刨析]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/128453263</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/128453263</guid><author>Code_Flyer</author><pubDate>Tue, 27 Dec 2022 11:02:53 +0800</pubDate><description><![CDATA[源码刨析]]></description><category></category></item><item><title><![CDATA[一文初识Rust多线程，超详细]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/127390882</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/127390882</guid><author>Code_Flyer</author><pubDate>Tue, 18 Oct 2022 16:15:27 +0800</pubDate><description><![CDATA[rust]]></description><category></category></item><item><title><![CDATA[初识布隆过滤器BloomFilter]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/108986510</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/108986510</guid><author>Code_Flyer</author><pubDate>Fri, 09 Oct 2020 23:49:07 +0800</pubDate><description><![CDATA[一、认识：


   布隆过滤器，英文叫BloomFilter，可以说是一个二进制向量和一系列随机映射函数实现。 可以用于检索一个元素是否在一个集合中。


二、原理：




数据存储示意图--&gt;



说明：bit数组中以n个索引位（n个不同的hash算法后的产生的索引）表示一个数据

小结：

布隆过滤器是用于判断一个元素是否在集合中。通过一个位数组和N个hash函数实现。
	注意：布隆过滤器有宁可错杀一百，也不能放过一个的特质，只会误报，不会漏报
	优点：
	空间效率高，所占空间小。
...]]></description><category></category></item><item><title><![CDATA[Keepalived + Nginx 实现高可用 Web 负载均衡]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/108932987</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/108932987</guid><author>Code_Flyer</author><pubDate>Mon, 05 Oct 2020 22:42:03 +0800</pubDate><description><![CDATA[简介：

   Keepalived 是一种高性能的服务器高可用或热备解决方案， Keepalived 可以用来防止服务器单点故障的发生，通过配合 Nginx 可以实现 web 前端服务的高可用。
   Keepalived 以 VRRP 协议为实现基础，用 VRRP 协议来实现高可用性(HA)。 VRRP(Virtual RouterRedundancy Protocol)协议是用于实现路由器冗余的协议， VRRP 协议将两台或多台路由器设备虚拟成一个设备，对外提供虚拟路由器 IP(一个或多个...]]></description><category></category></item><item><title><![CDATA[推荐一本书《每天5分钟玩转Kubernetes》]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/107597015</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/107597015</guid><author>Code_Flyer</author><pubDate>Sun, 26 Jul 2020 17:51:53 +0800</pubDate><description><![CDATA[链接：https://pan.baidu.com/s/1EmkVdXkwPDbu_JDDTcQ34A
提取码：6hb0
]]></description><category></category></item><item><title><![CDATA[离线安装logstash plugins]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/106187248</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/106187248</guid><author>Code_Flyer</author><pubDate>Mon, 18 May 2020 10:14:20 +0800</pubDate><description><![CDATA[如果服务器可以联网，可以按官方文档直接安装需要的插件，但很多时候生产上的服务器不联网的，只能通过离线方式安装需要的插件。官方提供在线安装方式：


bin/logstash-plugin install logstash-output-kafka


离线安装方式:

下载所需的Logstash plugins
	将下载的安装包上传解压
	编辑logstash目录下的Gemfile文件，添加解压后插件本地路径,如果Gemfile中存在需要安装的插件的路径，若存在该插件配置需要先注释掉

vim Gemfil]]></description><category></category></item><item><title><![CDATA[gulp-uglify（压缩js)]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/105184522</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/105184522</guid><author>Code_Flyer</author><pubDate>Sun, 29 Mar 2020 20:05:15 +0800</pubDate><description><![CDATA[构建环境
	
在d盘新建demo-node空文件夹（路径自己随意）
cmd进入demo-node文件夹，然后依次输入以下代码：npm install gulp -g 全局安装gulpnpm init 创建项目描述文件package.json，一路回车npm install gulp-uglify --save-dev安装gulp-uglify插件。


	手动配置gulpfile.j...]]></description><category></category></item><item><title><![CDATA[TCP三次握手和四次挥手原理]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/105177698</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/105177698</guid><author>Code_Flyer</author><pubDate>Sun, 29 Mar 2020 13:54:57 +0800</pubDate><description><![CDATA[三次握手
	


场景说明：

    客户端：喂，在吗？

    服务端：在，你还在吗？

    客户端：我现在还在，我们开始说话吧。


	四次挥手
	


场景说明：（分手是相互的）

    客户端：我们不合适，分手吧。

    服务端：为什么？

    客户端：你是个好人。

    服务端：我。。。好...]]></description><category></category></item><item><title><![CDATA[Redis 高性能的原因]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/104224915</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/104224915</guid><author>Code_Flyer</author><pubDate>Sat, 08 Feb 2020 17:01:51 +0800</pubDate><description><![CDATA[1、基于内存 存储：内存是计算机中数据存取最快的。

2、存储简单： set key value（可为任何格式数据）

3、单线程，效率更高（不像多线程那样会有线程切换、竞争锁）

4、I/O 多路复用：利用select、poll、epoll可以同时监察多个流的 I/O 事件的能力，在空闲的时候，会把当前线程阻塞掉，当有一个或多个流有I/O事件时，就从阻塞态中唤醒，于是程序就会轮询一遍所有的...]]></description><category></category></item><item><title><![CDATA[@Transaction注解使用注意事项]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/104189615</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/104189615</guid><author>Code_Flyer</author><pubDate>Wed, 05 Feb 2020 23:42:43 +0800</pubDate><description><![CDATA[@Transaction写的位置
	



	控制事务的规则
	


总结：

使用位置：

1、用在接口或接口的方法上，AOP必须是JDK代理方式，否则 无效。不推荐

2、用在类或类方法上。 推荐

3、注解应该被应用到publick 修饰的方法上，其他（protected，private）事务回滚无效

4、只有来自外部的方法调用，事务才有效。（同一个类内部调用回滚无效）

回滚控制：
...]]></description><category></category></item><item><title><![CDATA[一个系统中调用其他多个接口，响应时间最短方案]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/104176828</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/104176828</guid><author>Code_Flyer</author><pubDate>Tue, 04 Feb 2020 23:40:34 +0800</pubDate><description><![CDATA[接口调用流程图





串行执行：



总耗时：接口1 + 接口2

并行执行：







总耗时： &lt; 接口1+ 接口2 ，或 &gt;= 任意一个接口时间




]]></description><category></category></item><item><title><![CDATA[动态代理的实现方式及优缺点]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/104167894</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/104167894</guid><author>Code_Flyer</author><pubDate>Tue, 04 Feb 2020 14:43:16 +0800</pubDate><description><![CDATA[动态代理：是使用反射和字节码的技术，在运行期间（内存中）创建指定接口或类的子类以及实例化对象的技术，通过这个技术可以无侵入性的为代码进行增强扩展。
1、实现方式（目前有2种）：

  a. JDK原生动态代理

  b. CGLIB动态代理



2、运行流程：

  一般的java对象实例化如下：



 动态代理方式运行如下：



实现方式：
　　1、JDK原生动态代理

...]]></description><category></category></item><item><title><![CDATA[多线程下面临（不同的读写场景）的解决方案]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/104160060</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/104160060</guid><author>Code_Flyer</author><pubDate>Mon, 03 Feb 2020 18:45:17 +0800</pubDate><description><![CDATA[多线程下保证安全，我们可以使用内置锁，但是呢，它面临着一些性能浪费。因为只有写才会产生安全问题，读没必要加锁。
	对于不同的读写场景，我们可以使用不同的解决方案：
使用volatile关键字（一写多读）
	使用读写锁（多读多写），ReadLock和WriteLock
	使用写时复制容器CopyWrite系列（很少写，很多读），这里需要注意，该容器不会保证数据的实时一致性，但有最终一致性。

...]]></description><category></category></item><item><title><![CDATA[线程池内部对于新提交的任务是如何处理的？]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/104158439</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/104158439</guid><author>Code_Flyer</author><pubDate>Mon, 03 Feb 2020 17:13:02 +0800</pubDate><description><![CDATA[第一、线程池的优点

提高线程的可管理性（可统一分配、调优、监控）
	降低资源消耗（可重复利用创建好的线程）
	提高响应速度（节省了线程的创建和销毁时间）
第二、运行流程

 ThreadPoolExecutor的参数

int corePoolSize：核心线程数，也是线程池中最小数量。
	int maximumPoolSize：线程池中允许的最大线程数。
	long keepAliveTi...]]></description><category></category></item><item><title><![CDATA[类加载机制和双亲委派模型]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/104095660</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/104095660</guid><author>Code_Flyer</author><pubDate>Mon, 27 Jan 2020 22:30:56 +0800</pubDate><description><![CDATA[第一、类加载过程

首先呢，应用程序在使用我们Java类时，包含以下七个阶段，即生命周期：



1、加载：通过类的全限定名找到.class文件，把它从一个文件的字节流按照虚拟机规定的运行时的数据结构存储在方法区中，最后在虚拟机内存中生成一个代表这个类的class对象，作为访问这些数据的入口

2、验证：检查每个.java文件对应的.class文件所形成的字节流中包含的信息是否符合虚拟机规范的要求...]]></description><category></category></item><item><title><![CDATA[SpringBoot 项目 @EnableWebMvc 和@EnableAutoConfiguration注解一些坑总结]]></title><link>https://blog.youkuaiyun.com/Code_Flyer/article/details/103551036</link><guid>https://blog.youkuaiyun.com/Code_Flyer/article/details/103551036</guid><author>Code_Flyer</author><pubDate>Sun, 15 Dec 2019 18:07:15 +0800</pubDate><description><![CDATA[关于springBoot项目中报错：

javax.servlet.ServletException: Could not resolve view with name 'xxx' in servlet with name 'dispatcherServlet',

有可能是因为如下使用方式造成的无法使用视图解析器，请自行排查。



使用方式
			结果
		@EnableWebMvc + e...]]></description><category></category></item></channel></rss>